首页 > 解决方案 > 如何在 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"
  }
}


请求参数:

请求正文:

{
  "envVariables": {
    "my_key":"my_value"
  }
}

总体问题:是否无法env_variables使用 REST API 修补 App Engine Standard,或者我只是遗漏了一些东西?是否有任何替代方案可以避免重新部署?

标签: google-app-enginegoogle-cloud-platform

解决方案


不,对于这个特定的用例没有其他选择。

您无法修改envVariables使用 GAE Rest API 的原因是这些变量是在 App Engine 中构建您的应用程序时使用的,因此修改它们将意味着重新构建所有应用程序,这意味着您需要重新部署应用程序。

您可以修改缩放设置,因为这些设置不依赖于应用程序或其构建方式。

现在,您能够envVariables在 API 资源管理器中将其视为一个选项并不意味着它旨在与 一起使用apps.services.versions.patch,实际上该选项也与其他选项一起显示,就像一个通用菜单一样,其中包含 API 中的所有可能选项但是在您共享的文档中没有提到您可以将它用于您提到的特定方法。


推荐阅读