2011-07-17 22 views
5

Trên máy chủ Google AppEngine (GAE) của tôi, tôi muốn làm một cái gì đó như thế này:Trên công cụ ứng dụng của Google (GAE), làm cách nào máy chủ của tôi có thể biết đó có phải là phiên bản mặc định không?

if (thisIsTheDefaultServer) 
{ 
    // behave normally 
} 
else 
{ 
    // Accept special test-commands, give extra output, etc. 
} 

là có một cách để mã máy chủ để xác định xem nó là phiên bản mặc định hiện tại?

Cảm ơn!

Trả lời

2

Tôi nhớ đã nghe nhóm Google App Engine đề cập đến API để truy xuất mọi thứ từ trang tổng quan. Thật không may, tôi không thể tìm thấy nó vào lúc này. Tôi nghĩ có thể trong cuộc nói chuyện này: http://www.google.com/events/io/2011/sessions/life-in-app-engine-production.html

Tôi đã tìm thấy một tài liệu đề cập đến cách lấy thông tin này chính xác trong Java. Tôi không có đủ thời gian để tìm phiên bản Python.

Đối với Java (http://code.google.com/appengine/docs/java/javadoc/com/google/appengine/api/utils/SystemProperty.html):

if (SystemProperty.environment.value() == SystemProperty.Environment.Value.Production) { 
    // do something that's production-only 
} 
String version = SystemProperty.version.get(); 

Chúc mừng, Jacob

+0

Trong khi Nick có lẽ đúng là tôi có thể không muốn làm điều này, bạn thực sự trả lời câu hỏi như vậy, một khi tôi kiểm tra xem nó hoạt động (), tôi sẽ chấp nhận điều này. (Có thể không đạt được điều đó trong tuần này - có thể phân phối lớn.) – Olie

+0

Vì nó đáng giá, tôi đồng ý với Nick. Tôi có mã thực thi quản trị viên và sử dụng rất nhiều. Ngay cả trên các phiên bản đặc biệt. Trong thực tế, để kiểm tra máy chủ, chúng tôi giữ mọi thứ chỉ được khóa lại với quản trị viên. Chúng tôi sử dụng tệp vá để thay đổi cài đặt khi chúng tôi muốn chuyển sang sản xuất. Chúng tôi cũng có các phiên bản mặc định trong các tệp app.yaml của chúng tôi sẽ không triển khai trên phiên bản sản xuất mặc định của chúng tôi để ngăn chặn việc tạo ra chất béo trong quá trình sản xuất. – TheJacobTaylor

-1

Thanh toán các biến môi trường có sẵn (ví Java cho Python)

CURRENT_VERSION_ID trong Python SDK chứa giá trị quy định tại app.yaml, tôi nghĩ rằng đó là com.google.appengine.runtime.version cho runtine Java.

+0

Điều đó không giúp ích - nó cho biết thời gian chạy hiện tại là phiên bản nào, nhưng không phải là phiên bản mặc định hay không. –

5

Hiện không có cách nào để thực hiện việc này, nhưng bạn có thể muốn xem xét lại các yêu cầu của mình. Hai lựa chọn thay thế cho mùa xuân:

  1. Bật tên máy chủ lưu trữ: Nếu đó là tên ứng dụng hoặc tên miền tùy chỉnh, bạn đang sử dụng làm phiên bản mặc định. Nếu đó là tên version.app.appspot.com, bạn có thể hoặc không phải là phiên bản mặc định, nhưng có lẽ nên bật hành vi khác.
  2. Bật hành vi bổ sung dựa trên việc người dùng có đăng nhập với tư cách quản trị viên hay không. Đây có lẽ là một ý tưởng hay hơn xung quanh: Nó giúp bạn gỡ lỗi ứng dụng sản xuất dễ dàng hơn và có nghĩa là người dùng thường xuyên không thể tìm thấy phiên bản thay thế và xem nội dung họ không nên làm.
+0

Thứ hai thay thế thứ hai của nick. Hạn chế đối với quản trị viên cũng tương thích với việc đẩy các phiên bản thử nghiệm/đặc biệt mà bạn không bao giờ thụt lề để đặt mặc định. –

+0

Vâng, tôi đã nghĩ về điều đó - có lẽ sẽ được đăng nhập như tài khoản thử nghiệm (phó quản trị viên), nhưng tôi hiểu ý của bạn là gì. Khi thông tin không nhạy cảm, tôi chỉ biết rằng sẽ dễ dàng hơn khi dựa trên VSN mặc định và khi khách hàng được chỉ định không mặc định, chúng tôi sẽ nhận được kết quả kiểm tra đơn vị nhưng khi được triển khai, mọi thứ sẽ chuyển sang "bình thường". Cảm ơn! – Olie

Các vấn đề liên quan