google-app-engine - 在 Google App Engine 上以编程方式更改后端实例类

标签 google-app-engine gae-module gae-backends

我正在为 Google App Engine 项目使用后端实例。 (前端实例无法处理超过 60 秒的请求 - 我需要更长的时间。)

我选择B4实例类型,因为有时负载很高。然而,在某些时间(比如凌晨 2 点到 7 点)负载非常低,以至于使用 B4 实例就显得有些过分了。

我想创建一个 cron 作业,在某些时间将该实例的类型更改为 B2,在其他时间更改回 B4 以节省成本。

但是,看看 Modules API ,我找不到办法这样做。

那么我该怎么做呢?

得到 Ramiel 的答复后进行编辑

最后我使用了 Admin API,如下所示:

# Construct the api client
cred = GoogleCredentials.get_application_default()
svc = discovery.build('appengine', 'v1', credentials=cred)
vapi = svc.apps().services().versions()

# get list of versions
o = vapi.list(appsId=app_identity.get_application_id(), servicesId=modules.get_current_module_name()).execute()

# PATCH all SERVING versions with the new instanceClass
for v in o['versions']:
    if v['servingStatus'] == 'SERVING':
        result = vapi.patch(
            appsId=app_identity.get_application_id(),
            servicesId=modules.get_current_module_name(),
            versionsId=v['id'],
            updateMask='instanceClass',
            body={
                'instanceClass': instanceClass
            }
        ).execute()

最佳答案

检查 admin-api 端点

https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions/patch

如果由于某种原因这不起作用,您还可以使用各种实例/缩放设置部署多个版本的应用程序,并以编程方式切换它们 start_version 为 Modules API


顺便说一句,如果您切换到手动缩放,则没有 60 秒的限制

关于google-app-engine - 在 Google App Engine 上以编程方式更改后端实例类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39488228/

相关文章:

python - 如何将Flask导入appengine

python - 如何判断返回的光标是否是 App Engine 中的最后一个光标

java - GAE : Cannot set admin login credential for module http requests

google-app-engine - 自动缩放正在运行,但持续出现 502 Google Flexible Environment (NodeJs)

google-app-engine - 提供内容类型为 "image/png"而非 "image/x-png"的静态 PNG 文件

python - 无法运行 Google App Engine 自定义托管 VM : --custom-entrypoint must be set error

java - 任务重试限制达到谷歌应用引擎后运行函数

java - 使用 AppEngine 模块时,Java 程序如何辨别哪个 "backend"是哪个?

java - 后端服务的 Appengine 请求持续时间