首页 > 解决方案 > 没有流量时如何将 Google App Engine 实例缩减到 0?

问题描述

我在 GAE 上托管一个应用程序,并希望在没有流量时启用自动缩减到 0 个实例。我认为指定min_instances: 0会允许这种情况发生。我还包括warmup了文档中推荐的过程。

我早上向应用程序发送了一个请求,并没有再次触摸它,但它仍然花费了 10 多个实例小时。

谁能告诉我如何在标准环境中启用缩减到 0 个实例?

我还要注意我正在使用其他一些 GCP 服务,包括 pubsub 和 secretmanager。那些会累积 F 级实例小时数吗?

service: default
runtime: python37

instance_class: F4_1G

automatic_scaling:
  target_cpu_utilization: 0.80
  min_instances: 0    # should enables aut-scaling down to 0 instances when no traffic
  max_instances: 2
  max_pending_latency: 2000ms
  min_pending_latency: 30ms    # default

entrypoint: python -m api.app

handlers:
  - url: /home
    script: auto


inbound_services:
  - warmup    # sends GET request to application's /_ah/warmup endpoint

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

解决方案


文档中所述

App Engine 可以在流量波动时自动创建和关闭实例,或者您可以指定要运行的实例数量而不管流量大小。

这意味着如果一个实例在日志时间内没有工作,它将被关闭,或者如果您配置了 min_idle_instances ,这个实例将继续运行并准备好为流量提供服务。

在 App Engine 控制面板上,选择实例菜单,然后在摘要下拉列表中选择实例,您将能够看到您的实例是否处于活动状态。

如果有活动的实例,这可能意味着您的实例仍在做一些工作、后台任务或者可能有什么卡住了。

如果有空闲实例,这要归功于您的app.yaml 配置文件,您在其中设置了最少的空闲实例并且没有工作但准备好服务,但是您也将为此实例付费。


推荐阅读