Google App Engine(Python)中当前应用的名称
在使用Google App Engine的Python API时,有没有办法获取当前正在运行的应用程序的名称?也就是说,就是在你的app.yaml
文件里用application: foobar
指定的那个应用名称?
1 个回答
35
import os
appname = os.environ['APPLICATION_ID']
更新:我今天注意到这个问题,因为我收到了一个新的点赞(真是丢人,点赞的人!),不过这个信息现在已经不准确了。
from google.appengine.api.app_identity import get_application_id
appname = get_application_id()
应该使用这个。os.environ
中的值会在使用HR数据存储的应用程序前加上一个"s~"的前缀,而在开发服务器上默认是"dev~"。总的来说,在App Engine上也应该完全避免使用os.environ
,因为当Python 2.7运行时添加了并发支持后,使用os.environ
就不再安全了,这样可能会导致一个请求的数据泄露到另一个请求中。虽然显然,对于同时对同一个应用程序的多个请求,应用程序的ID是相同的……