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

Oli*_*lie 5 google-app-engine

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

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

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

谢谢!

Nic*_*son 5

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

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


The*_*lor 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();
Run Code Online (Sandbox Code Playgroud)