配置实例数下限

您可以通过设置实例数下限来避免应用冷启动并缩短应用延迟时间。

Cloud Functions 通过创建新函数实例进行扩容。每个此类实例一次只能处理一个请求,因此创建新实例来满足需求时,请求数量达到高峰可能会导致等待时间更长。

由于函数是无状态的,因此函数有时会从头开始初始化执行环境,这称为“冷启动”。冷启动可能需要很长时间才能完成,因此如果您的应用对延迟时间较为敏感,我们建议您设置 Cloud Functions 函数实例数下限。

空闲实例和冷启动

为最大限度地降低冷启动产生的影响,Cloud Functions 会尝试在处理请求后将函数实例保持空闲状态一段时间。在此空闲期间,打开的数据库连接等资源可能会持久保留,以防需要处理其他请求。以这种方式保持空闲状态的实例会计入您的函数的实例数上限,但您不需要为此空闲时间付费。

对于您的应用而言,这种内置行为可能不够,尤其是当它对延迟敏感时。明确设置实例数下限可以进一步帮助您避免冷启动并缩短应用延迟时间。

请注意,如果实例因设置了实例数下限而保持空闲状态,则除非这些实例最近传送了流量,否则不会被视为活跃实例。例如,这意味着如果函数最近未传送流量,则“活跃实例”指标可能显示没有活跃实例,即使设置了实例数下限值也是如此。

另请注意,如果您设置了实例数下限,则需要为这些实例的空闲时间付费(请参阅价格)。

设置和清除实例数下限

您可以在部署期间为函数设置实例数下限。每个函数都有自己的实例数下限设置。

设置实例数下限

您可以使用 Google Cloud CLI 或 Google Cloud 控制台设置实例数下限。

控制台

如需为新函数设置实例数下限,请执行以下操作:

  1. 如需创建新函数,请转到 Google Cloud 控制台中的 Cloud Functions 页面:
    转到 Cloud Functions 页面

  2. 点击创建函数

  3. 填写函数的必填字段。

  4. 展开页面末尾的运行时、构建... 部分,然后点击运行时标签页。

  5. 自动扩缩部分的实例数下限字段中,输入一个大于或等于 1 的数字。

  6. 点击下一步

  7. 点击部署

如需为现有函数设置实例数下限,请执行以下操作:

  1. 转到 Google Cloud 控制台中的 Cloud Functions 页面:
    转到 Cloud Functions 页面

  2. 点击现有函数的名称,以转至其函数详情页面。

  3. 点击修改

  4. 展开页面末尾的运行时、构建... 部分,然后点击运行时标签页。

  5. 自动扩缩部分的实例数下限字段中,输入一个大于或等于 1 的数字。

  6. 点击下一步

  7. 点击部署

gcloud

要设置实例数下限,请运行以下命令:

gcloud functions deploy FUNCTION_NAME \
--min-instances MIN_INSTANCE_LIMIT

替换以下内容:

  • FUNCTION_NAME:函数的名称。

  • MIN_INSTANCE_LIMIT:要设置为实例数下限的数字,不能超过 1000。

已设置函数的实例数下限。

清除实例数下限

您可以使用 Google Cloud CLI 或 Google Cloud 控制台清除或移除实例数下限。

控制台

如需清除函数的实例数下限,请执行以下操作:

  1. 转到 Google Cloud 控制台中的 Cloud Functions 页面:
    转到 Cloud Functions 页面

  2. 点击现有函数的名称,以转至其函数详情页面。

  3. 点击修改

  4. 展开页面末尾的运行时、构建... 部分,然后点击运行时标签页。

  5. 自动扩缩部分的实例数下限字段中,输入 0。

  6. 点击下一步

  7. 点击部署

gcloud

在部署时使用 --clear-min-instances 标志:

gcloud functions deploy FUNCTION_NAME --clear-min-instances

已清除函数的实例数下限。

获取设置实例数下限的建议

Recommender 服务会自动为可以从设置最少实例中受益的已部署函数提供建议。