google-app-engine - 如何在 App Engine Standard 中使用 REST API 修补 env_variable?
问题描述
最近我一直在 App Engine Standard 上部署应用程序,有时我不小心部署了一个env_variables
在 app.yaml 上指定的有错字的版本。假设我不想部署新版本,因为这需要时间,而且这个错字应该很容易用“快速补丁”修复。
我遵循了GAE Admin REST API 文档并使用了 API Explorer。事实证明,请求正文接受了,envVariables
所以我认为这个 API 可以解决我的问题,但由于某种原因它失败了。
错误:
{
"error": {
"code": 400,
"message": "This operation is only supported on the following field(s): [automatic_scaling.cool_down_period_sec, automatic_scaling.cpu_utilization.target_utilization, automatic_scaling.max_idle_instances, automatic_scaling.max_total_instances, automatic_scaling.min_idle_instances, automatic_scaling.min_total_instances, automatic_scaling.standard_scheduler_settings.max_instances, automatic_scaling.standard_scheduler_settings.min_instances, automatic_scaling.standard_scheduler_settings.target_cpu_utilization, automatic_scaling.standard_scheduler_settings.target_throughput_utilization, instance_class, manual_scaling.instances, serving_status]",
"status": "INVALID_ARGUMENT"
}
}
请求参数:
- 应用程序 ID:PROJECT_ID
- 服务 ID:SERVICE_NAME
- 版本号:2021xxxx
- updateMask:环境变量
请求正文:
{
"envVariables": {
"my_key":"my_value"
}
}
总体问题:是否无法env_variables
使用 REST API 修补 App Engine Standard,或者我只是遗漏了一些东西?是否有任何替代方案可以避免重新部署?
解决方案
不,对于这个特定的用例没有其他选择。
您无法修改envVariables
使用 GAE Rest API 的原因是这些变量是在 App Engine 中构建您的应用程序时使用的,因此修改它们将意味着重新构建所有应用程序,这意味着您需要重新部署应用程序。
您可以修改缩放设置,因为这些设置不依赖于应用程序或其构建方式。
现在,您能够envVariables
在 API 资源管理器中将其视为一个选项并不意味着它旨在与 一起使用apps.services.versions.patch
,实际上该选项也与其他选项一起显示,就像一个通用菜单一样,其中包含 API 中的所有可能选项但是在您共享的文档中没有提到您可以将它用于您提到的特定方法。
推荐阅读
- javascript - 在 Google 地图标签上显示地址并在地图上添加商家名称
- excel - 在工作簿 1(A 列)和工作簿 2(A 列)中查找匹配的单元格值;粘贴对应数据
- git - 为什么cherry-pick 不接受所有更改?
- python - Python Selenium 显式等待并使用 xpath 发送密钥
- jquery - jQuery - if (this.checked) 有多个输入组
- java - 如何在java中更改按钮的字体大小/颜色?
- python - 你能用 Q 学习(而不是深度 Q 学习)来训练游戏“蛇”吗
- react-native - React Native:无法使用 axios 或 fetch 对 formData 进行发布请求
- here-api - 尝试获取自动完成建议时收到 ERR_CONNECTION_REFUSED
- php - Symfony - 自动设置过期时间