首页 > 解决方案 > GAE:仅为默认服务版本指定 min_instances

问题描述

我们在 Google App Engine 上运行了一项服务。如果该服务在一段时间内没有收到流量,则所有实例都将被终止,并且下一次调用需要几秒钟才能启动应用程序。我们正在考虑指定一个 min_instances 选项app.yaml以始终保持至少一个实例处于活动状态。

我们非常频繁地部署该服务的新版本,并将旧版本保留一段时间。那些旧版本不提供流量服务,以防万一。

我们想做的是始终保持至少一个默认服务版本的实例处于活动状态,并让所有其他非默认版本保持默认行为——如果它们没有收到任何流量,我们希望它们自动缩放到 0 个实例。

我在文档(https://cloud.google.com/appengine/docs/standard/python3/config/appref#scaling_elements)中没有找到这样的选项,也没有找到任何解决方法。

我正在考虑创建一个 cron 作业(https://cloud.google.com/appengine/docs/flexible/python/scheduling-jobs-with-cron-yaml),它将定期“ping”我的应用程序的默认版本从而使其始终处于睡眠状态。但我不确定这是否是一个好的解决方案。

这种情况有更好的解决方案吗?

谢谢!

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

解决方案


min_idle_instances 配置选项似乎解决了我的问题。请注意文档中的以下内容:“此设置仅适用于接收大部分流量的版本”,这几乎正是我的情况:

automatic_scaling:
    min_idle_instances: 1

推荐阅读