【问题标题】:Create new instances of a Google App Engine Service创建 Google App Engine 服务的新实例
【发布时间】:2020-10-10 03:29:56
【问题描述】:

我有一个使用标准环境的 Google App Engine Java 11 服务。

我已经部署它,在对应的app.yaml文件中指定手动缩放,设置实例数为1。

有没有一种方法可以增加此服务的实例数量,而无需再次上传服务中的所有文件?

所以我有一个实例。现在我想要 2 个实例。我该怎么做?

尚未在控制台或 gcloud 实用程序中找到执行此操作的方法。 此外,仅使用修改后的 app.yaml 文件调用 gcloud app deploy 会创建服务的损坏版本。

app.yaml:

service: headergrabber
runtime: java11
instance_class: B8

manual_scaling:
  instances: 1

【问题讨论】:

  • 您需要在您的应用程序中进行代码更改时redeploy。请提供您的原始和修改后的app.yaml,不包括 API 密钥或密码等敏感信息,以便我们检查问题所在。
  • 不想做任何代码更改。代码很好。只是想要更多实例。
  • 更新答案。

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


【解决方案1】:

使用 REST API 来patch 手动扩展应用的实例数。

这是 HTTP 请求:

PATCH https://appengine.googleapis.com/v1/{name=apps/*/services/*/versions/*}

您必须传递 manualScaling.instances 字段才能更新为您喜欢的实例数。

下面是一个curl 的示例,它使用了一个只应用于本地测试的令牌。我对它进行了测试,它可以工作:

curl -X PATCH -H "Content-Type: application/json" \
-d "{ 'manualScaling': {  'instances': 2 } }" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
https://appengine.googleapis.com/v1/apps/PROJECT-ID/services/SERVICE/versions/VERSION?updateMask=manualScaling.instances

地点:

  • PROJECT_ID = 项目 ID
  • SERVICE = 服务名称
  • VERSION = 版本名称

如果您使用 Cloud SDK,则需要登录您的帐户并设置项目,或者您可以在 Cloud Shell 上运行命令。

另一种方法是使用client library,这样您就可以编写可以更新您的 App Engine 实例的应用程序。

请注意,这样做需要在您的项目中启用 App Engine Admin API。此 API 提供对 Google Cloud Console 中的多个 App Engine 管理操作的编程访问。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 1970-01-01
    • 2015-11-05
    • 1970-01-01
    • 2019-05-06
    • 1970-01-01
    相关资源
    最近更新 更多