AppEngine:获取当前的服务应用程序版本

Koe*_*Bok 33 google-app-engine

有没有一种简单的方法来获取AppEngine中当前的服务应用程序版本?

Dre*_*ars 38

os.environ['CURRENT_VERSION_ID']

  • 这不是弃用的.以这种方式获取当前版本非常好.不推荐使用的键是APPLICATION_ID,应该使用get_application_id()函数. (6认同)
  • 结果类似于`my-version.383096322806301043`,如果您只想要版本名称,则在点上拆分.我猜第二部分是时间戳,根据Marco在这个页面上的回答来判断. (2认同)

hus*_*ayt 17

String version = SystemProperty.version.get();
String applicationVersion = SystemProperty.applicationVersion.get();
Run Code Online (Sandbox Code Playgroud)

这是语法:

public static final SystemProperty applicationVersion
Run Code Online (Sandbox Code Playgroud)

当前运行的应用程序版本的主要版本号加上部署它的时间戳.密钥是"com.google.appengine.application.version".

看到这里

PS.一个难题仍然存在.版本旁边的时间戳是什么意思以及如何阅读它?

编辑:这是神秘的关键.

 Date UploadDate = new Date(Long.parseLong(
   applicationVersion.substring(applicationVersion.lastIndexOf(??".")+1))
   / (2 << 27) * 1000);
Run Code Online (Sandbox Code Playgroud)

  • 要将版本末尾的数字转换为部署时间,作为自纪元以来的秒数,请将值除以2 ^ 28.有关此问题的GAE功能请求,请参阅:http://code.google.com/p/googleappengine/issues/detail?id = 5788.我刚刚在本周(2012年6月)对部署版本进行了测试,结果是正确的时间戳. (2认同)
  • 所以基本上`Date UploadDate = new Date(Long.parseLong(applicationVersion.substring(applicationVersion.lastIndexOf(".")+ 1))/(2 << 27)*1000);` (2认同)

小智 9

对于Python(GAE SDK版本:"1.4.2")

version_id = self.request.environ["CURRENT_VERSION_ID"].split('.')[1]

timestamp = long(version_id) / pow(2,28) 

version = datetime.datetime.fromtimestamp(timestamp).strftime("%d/%m/%y %X")
Run Code Online (Sandbox Code Playgroud)

请参阅http://groups.google.com/group/google-appengine-python/browse_thread/thread/f86010e7cf3c71b4


Eya*_*vin 9

from google.appengine.api import modules
modules.get_current_version_name()
Run Code Online (Sandbox Code Playgroud)

资料来源:https://cloud.google.com/appengine/docs/python/modules/functions