python - 没有流量时如何将 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
解决方案
App Engine 可以在流量波动时自动创建和关闭实例,或者您可以指定要运行的实例数量而不管流量大小。
这意味着如果一个实例在日志时间内没有工作,它将被关闭,或者如果您配置了 min_idle_instances ,这个实例将继续运行并准备好为流量提供服务。
在 App Engine 控制面板上,选择实例菜单,然后在摘要下拉列表中选择实例,您将能够看到您的实例是否处于活动状态。
如果有活动的实例,这可能意味着您的实例仍在做一些工作、后台任务或者可能有什么卡住了。
如果有空闲实例,这要归功于您的app.yaml 配置文件,您在其中设置了最少的空闲实例并且没有工作但准备好服务,但是您也将为此实例付费。
推荐阅读
- python - 如何设置约束以允许最多选择 2 个字段?
- jquery-ui - 带有 Font Awesome 不良效果的 jQuery UI(使用 jQuery 3.2.1)
- python - Python - 从变量中提取数据的正则表达式
- r - 如何将 stl 输出转换为数据帧但保持时间序列时间步长?
- node.js - Sqlite3 安装卡在“unpacking node_sqlite3.node”
- javascript - Webpack HtmlWebpackPlugin 移除 DOM 元素
- php - PHP password_verify 不能与准备好的语句一起使用
- asp.net - Sql Exception 向现有查询添加临时列时语法不正确
- r - R download.file 带有“wget”-方法并指定额外的 wget 选项
- c# - 如何使用 Json (C#) 序列化忽略某些属性的对象