【问题标题】:Can I update the scaling config on App Engine Flexible without a full redeploy?我可以在不完全重新部署的情况下更新 App Engine Flexible 的扩展配置吗?
【发布时间】:2019-08-12 19:03:16
【问题描述】:

我刚刚开始使用 App Engine Flexible,似乎更新任何配置(包括 automatic_scalingmanual_scaling 设置)的唯一方法是更新 app.yaml,然后通过 gcloud app deploy 进行重新部署。假设我有一个相对保守的配置,以确保成本不会失控,但突然获得 100 倍的流量,需要更改配置以允许更激进的扩展。问题是,完全部署大约需要 10 分钟。

有什么方法可以更快地更改缩放设置,而无需完全重新部署(使用相同的现有应用代码)?

【问题讨论】:

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


    【解决方案1】:

    您可以像这样使用 Python sn-p,它使用 App Engine Admin API,就像在另一个答案中一样:

    from googleapiclient import discovery
    import os
    
    service = discovery.build('appengine', 'v1')
    projectId = os.getenv('GOOGLE_CLOUD_PROJECT')
    serviceId = 'default'
    versionsId='20190130t220207'
    
    body = {
      "automaticScaling": {
        "minTotalInstances": 3
      },
      "env": "flex"
    }
    
    minInstancesRequest = service.apps().services().versions().patch(appsId=projectId, servicesId=serviceId, versionsId=versionsId, body=body, updateMask='automaticScaling.minTotalInstances')
    minInstancesRequest.execute()
    

    【讨论】:

      【解决方案2】:

      是的,可以使用 App Engine Admin APIapps.services.versions.patch 发送补丁 REST 请求 根据您的 use case,您可以使用 REST、RPC 甚至客户端库本身来执行此操作。

      【讨论】:

      • 目前是否完全没有与 gcloud CLI 工具集成?
      • 此外,如果您期望突然获得 100 倍的流量,我建议您使用更适合快速扩展的 App Engine Standard。您可以检查here 两种环境之间的差异。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-26
      • 1970-01-01
      • 1970-01-01
      • 2016-09-20
      • 1970-01-01
      • 2022-11-25
      • 1970-01-01
      相关资源
      最近更新 更多