在Google的应用引擎(GAE)上,我的服务器如何判断它是否为默认版本?

时间:2011-07-17 18:19:08

标签: google-app-engine

在我的Google AppEngine(GAE)服务器上,我想做类似的事情:

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

有没有办法让服务器代码确定它是否是当前的默认版本?

谢谢!

3 个答案:

答案 0 :(得分:5)

目前没有办法做到这一点,但您可能想重新考虑您的要求。我想到了两种选择:

  1. 启用主机名:如果是裸appspot名称或自定义域名,则您将作为默认版本。如果它是version.app.appspot.com名称,您可能是也可能不是默认版本,但无论如何都应该启用不同的行为。
  2. 根据用户是否以管理员身份登录,启用额外行为。这可能是一个更好的想法:它使调试生产应用程序变得更容易,并且意味着普通用户无法找到备用版本并看到他们不应该看到的东西。

答案 1 :(得分:2)

我记得听过Google App Engine团队提到了一个API来从仪表板中检索任何内容。不幸的是,我现在找不到它。我想这可能是在这次演讲中:http://www.google.com/events/io/2011/sessions/life-in-app-engine-production.html

我确实找到了一篇关于如何用Java完全获取这些信息的文档。我没有足够的时间来找到Python版本。

对于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();

答案 2 :(得分:-1)

检查可用的环境变量(JavaPython

Python SDK中的

CURRENT_VERSION_ID包含app.yaml中指定的值,我认为这是Java runtine的com.google.appengine.runtime.version。