我正在编写一个脚本来自动下载和更新已安装的 Google App Engine SDK 版本。我可以确定安装的版本。
我目前需要发出 wget 请求并检查它是否返回 404 错误;实际上这至少有 2 个请求,一个是检查错误修复更新,另一个是检查次要版本更新。
我想避免发出这些 wget 请求。为此,我需要确定 SDK 的最新(稳定而非预发布)版本。此信息是否可通过 API 或其他可查询来源获得?
我正在编写一个脚本来自动下载和更新已安装的 Google App Engine SDK 版本。我可以确定安装的版本。
我目前需要发出 wget 请求并检查它是否返回 404 错误;实际上这至少有 2 个请求,一个是检查错误修复更新,另一个是检查次要版本更新。
我想避免发出这些 wget 请求。为此,我需要确定 SDK 的最新(稳定而非预发布)版本。此信息是否可通过 API 或其他可查询来源获得?
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。
接受的答案最近被打破了。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
未来的版本(1.9.91 等)可能会在类似的 URL 上提供,但这还有待观察。它看起来像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 更新的好方法。如果我找到一个好的建议或提出一个好的建议,我会在这里更新。