在 Python 3 中测试和部署升级后的应用

区域 ID

REGION_ID 是 Google 根据您在创建应用时选择的区域分配的缩写代码。此代码不对应于国家/地区或省,尽管某些区域 ID 可能类似于常用国家/地区代码和省代码。对于 2020 年 2 月以后创建的应用,REGION_ID.r 包含在 App Engine 网址中。对于在此日期之前创建的现有应用,网址中的区域 ID 是可选的。

详细了解区域 ID

在升级您的应用使其同时兼容 Python 2 和 Python 3 后:

  1. 在本地 Python 3 环境中测试应用

  2. 在 App Engine 中进行部署和测试,而无需将流量转移到您的应用。

  3. 将流量迁移到您的应用

您可能需要花费大量时间来解决在 Python 3 环境中运行升级后的应用之前观察不到的兼容性问题。

为避免在测试期间使用生产数据和 Google Cloud 配额,您可以使用以下模拟器:

其他 Google Cloud 服务(例如 Cloud Storage 和 Memorystore)不提供模拟器。

在本地测试

如需在部署之前测试应用的功能,请按照 Python 3 运行时中在本地运行说明进行操作。

在迁移流量之前在 App Engine 上进行测试

在将流量路由到升级后的 Python 应用之前,请将应用部署到 App Engine Python 3 运行时环境进行另一轮测试。例如,要测试应用的 default 服务,请执行以下操作:

  1. 请务必更新应用的配置文件,以便与 Python 3 运行时环境兼容。

    在准备好将流量转移到您的应用之前,请勿更改向模拟器或测试数据库发送请求的环境变量。

  2. 部署新版本,但防止流量自动路由到新版本:

    gcloud app deploy --no-promote

  3. 转到以下网址以访问新版本:

    https://VERSION_ID-dot-default-dot-PROJECT_ID.REGION_ID.r.appspot.com

现在,您可以在 App Engine 运行时环境中测试新版本。您可以通过查看应用日志来调试应用。如需了解详情,请参阅写入应用日志

发送到 https://PROJECT_ID.REGION_ID.r.appspot.com 的请求会路由到先前配置为接收流量的版本。

要测试其他服务的新版本,请遵循相同的流程,但将网址中的 default 替换为您的服务的名称:

https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com

如需详细了解如何定位特定服务和版本,请参阅请求的路由方式

将流量迁移到您的应用

当您准备好向新版本发送流量时,请执行以下操作:

  1. 更新 app.yaml 文件中的环境变量,以便向生产数据库和其他服务(而不是您使用过的任何模拟器或测试数据)发送请求。

  2. 防止在部署时自动将流量路由到新版本:

    gcloud app deploy --no-promote

  3. 在确认您的应用正在与生产数据库和数据存储区进行交互后,使用 Google Cloud 控制台迁移流量:

    管理版本

    选择升级后应用的最新版本,然后点击迁移流量