【问题标题】:How to patch env_variable using REST API in App Engine Standard?如何在 App Engine Standard 中使用 REST API 修补 env_variable?
【发布时间】:2021-03-05 13:08:31
【问题描述】:

最近我一直在 App Engine Standard 上部署应用程序,有时我不小心部署了一个在 app.yaml 上指定的 env_variables 中有错字的版本。假设我不想部署新版本,因为这需要时间,而且这个错字应该可以通过“快速补丁”轻松修复。

我关注了GAE Admin REST API doc 并使用了 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"
  }
}


请求参数:

  • appsId:PROJECT_ID
  • servicesId:SERVICE_NAME
  • versionsId: 2021xxxxxx
  • updateMask:envVariables

请求正文:

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多