我正在编写一个脚本来自动下载和更新已安装的Google App Engine SDK版本。我可以确定安装的版本。
我目前需要发出wget请求并检查它是否返回404错误;实际上,这至少有2个请求,一个用于检查错误修复更新,另一个用于检查次要版本更新。
我想避免发出这些wget请求。为此,我需要确定SDK的最新版本(稳定版本而不是预发布版本)。这些信息是通过API还是其他可靠来源提供的?
答案 0 :(得分:4)
python SDK在运行开发服务器时检查当前的SDK。发射器也有这个设施。
这将是我将使用的方法。
对于命令行sdk,实现检查的python代码是https://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/tools/sdk_update_checker.py,正如您所指出的那样,启动程序的代码是https://code.google.com/p/google-appengine-wx-launcher/source/browse/trunk/launcher/app.py
代码对http://appengine.google.com/api/updatecheck执行api RPC并获得yaml响应。因此,您可以使用该代码,甚至只需从sdk_checker导入和SDKUpdateChecker。
答案 1 :(得分:1)
最近被接受的答案已被打破。 http://appengine.google.com/api/updatecheck现在返回这样的响应,其最新发行版设置为0.0.0:
$ curl -LSfs https://appengine.google.com/api/updatecheck
release: "0.0.0"
timestamp: 1586242881
api_versions: ['1']
supported_api_versions:
python:
api_versions: ['1']
python27:
api_versions: ['1']
go:
api_versions: ['go1', 'go1.9']
java7:
api_versions: ['1.0']
go111:
api_versions: [null]
最新可用版本为1.9.90
,网址为
https://storage.googleapis.com/appengine-sdks/featured/google_appengine_1.9.90.zip
有可能在类似的URL上提供将来的版本(1.9.91等),但这仍有待观察。看起来gcloud components install
和gcloud components update
可以用来安装SDK,尽管编写脚本可能会更加困难。
更新: https://cloud.google.com/appengine/docs/standard/python/sdk-gcloud-migration
自2019年7月30日起,不赞成使用独立的App Engine SDK。它将在2020年7月30日无法下载。
gcloud
是前进的方向,尽管我不确定自动gcloud更新的好方法。如果我发现一个好的建议或提出一个建议,我将在这里更新。