【发布时间】:2010-06-03 02:54:59
【问题描述】:
我有一个 Google App 引擎应用程序,我想根据它是否在我的本地开发环境(即使用 dev_appserver.py)中运行而不是在实际 GAE 云中运行而以不同的方式工作。
目前我使用一个手动切换的标志变量来实现这一点。但我确信有一天我会忘记更改它并导致问题。所以我想知道是否有 API 或其他方式来确定 GAE 应用程序实际运行的位置?
谢谢。
【问题讨论】:
我有一个 Google App 引擎应用程序,我想根据它是否在我的本地开发环境(即使用 dev_appserver.py)中运行而不是在实际 GAE 云中运行而以不同的方式工作。
目前我使用一个手动切换的标志变量来实现这一点。但我确信有一天我会忘记更改它并导致问题。所以我想知道是否有 API 或其他方式来确定 GAE 应用程序实际运行的位置?
谢谢。
【问题讨论】:
您可以检查 SERVER_SOFTWARE 环境变量,看看它是 Development/X 还是 Google App Engine/X:
http://code.google.com/appengine/docs/python/runtime.html#The_Environment
【讨论】:
我知道最初的问题是针对 python 的,但是为了 Java 使用这样做:
if (SystemProperty.environment.value() == SystemProperty.Environment.Value.Production) {
// running on prod
} else {
// running on dev
}
【讨论】:
我使用 datastore.get() 来提取值。
在 dev_appserver 上,数据存储区包含一个设置为“local”的实体“Environment”。 在 GAE 开发应用程序上,“环境”是“开发” 在 GAE prod 应用上,“环境”是“prod”
可以扩展到UAT等
【讨论】: