迁移流量

流量迁移在应用服务的多个版本之间切换请求路由,将流量从一个或多个版本转移至单个新版本。

如需了解如何在应用的两个或更多版本之间拆分流量,请参阅流量拆分

准备工作

确保您的用户帐号包含所需的权限,然后才能将流量配置到某个版本。

逐步迁移流量

在标准环境中,您可以选择立即或逐步将请求路由到目标版本。

默认情况下,预热请求处于停用状态,流量会立即迁移到某个版本。

如果您想要逐步将流量迁移到某个版本,可以选择启用预热请求。如果您立即将流量迁移到没有任何运行实例的新版本,将会在加载请求时遇到延迟时间急剧增加的问题。部署与现有版本同名的新版本会导致立即进行流量迁移。旧版本的所有实例都会立即关停。由于要为新版本加载请求,延迟时间将急剧增加。

如果启用了预热请求,对于位于不同环境中的版本,您必须指定立即迁移流量才能在版本之间迁移流量。

向您的应用添加预热请求

启用预热请求后,系统会在新实例收到任何用户请求之前,先向这些实例发送预热请求,以逐步迁移流量。启用预热请求允许当前接收流量的版本处理用户请求,改善用户响应时间,但迁移到新版本的流量可以在创建新实例时有一段不长的适应时间。

如果未启用预热请求,系统会在新实例创建完毕之前就向其发送用户请求。由于创建新实例和加载应用代码导致的延迟,用户响应时间可能受到影响。

如需避免延迟并启用预热请求,请在将应用部署到 App Engine 之前,在配置文件中包含 inbound_services 元素。

例如,在将应用部署到 App Engine 之前,请在 app.yaml 文件中添加以下内容:

inbound_services:
- warmup

如需了解启用预热请求的完整详情,请参阅配置预热请求以提高性能

将流量迁移到新版本

控制台

如需在控制台中迁移流量,请打开“版本”页面:

转到“版本”页面

  1. 选择所有流量的目标迁移版本。
  2. 点击迁移流量
  3. 可选:如果启用了预热请求,您的流量会逐步迁移。如需立即迁移流量,请在显示高级选项部分下选择相应选项。

gcloud

安装 Google Cloud CLI 后,运行 gcloud app services set-traffic 命令将所有流量迁移到单个版本。例如:

  • 如需立即迁移流量,请运行以下命令:
    gcloud app services set-traffic [MY_SERVICE] --splits [MY_VERSION]=1
  • 如需逐步迁移流量,请添加可选的 --migrate 标志:
    gcloud app services set-traffic [MY_SERVICE] --splits [MY_VERSION]=1 --migrate

API

要以编程方式迁移流量,您可以使用 Admin API。如需了解详情,请参阅迁移和拆分流量