将 App Engine 容器映像迁移到 Artifact Registry

区域 ID

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

详细了解区域 ID

Container Registry 已弃用,并已于 2025 年 3 月 18 日关停。 我们建议您使用 Artifact Registry 来存储和管理容器映像。默认情况下,2025 年 3 月 5 日之后创建的新部署使用 Artifact Registry(而非 Container Registry)来存储应用映像。Artifact Registry 提供的容器管理功能与 Container Registry 提供的相同,并包含其他功能和优势。作为同时支持容器映像和非容器工件的全托管式服务,Artifact Registry 对 Container Registry 的功能进行了扩展。

对于在 2024 年 5 月之前创建或尚未运行自动迁移工具的项目,请按照本指南中的步骤操作,让 App Engine 自动迁移您的部署流程。

App Engine 标准环境

标准环境中的大多数应用组件都遵循自动迁移过程。不过,为了顺利过渡到 Artifact Registry,请确保您的服务账号具有以下所需权限:

  • 对于现有的标准部署,部署服务账号(App Engine 默认服务账号 (PROJECT_ID@appspot.gserviceaccount.com) 或您的自定义服务账号)必须具有授予明确的 Artifact Registry 写入权限 artifactregistry.repositories.uploadArtifacts 的角色。如需查找与您的部署服务账号关联的角色,请参阅管理对服务账号的访问权限

  • 如果与部署关联的服务账号具有以下任何角色,则新部署可以使用 Artifact Registry:

    如果不具备这些角色,请向您的部署服务账号授予 Artifact Registry Writer 角色 (roles/artifactregistry.writer)。

如果未提供所需权限,您将无法在标准环境中部署新版本。

在自动迁移期间, Google Cloud 可能会创建新的代码库,并将映像从 Container Registry 复制到 Artifact Registry。

App Engine 柔性环境

柔性环境中的大多数应用组件都遵循自动迁移过程。不过,为了顺利过渡到 Artifact Registry,请确保您的服务账号具有以下所需权限:

  • 为了让现有的灵活部署能够按预期在 Artifact Registry 中运行,部署服务账号(App Engine 默认服务账号 (PROJECT_ID@appspot.gserviceaccount.com) 或您的自定义服务账号)必须具有可授予明确的 Artifact Registry 权限的角色,例如用于读取的 artifactregistry.repositories.downloadArtifacts 和用于写入的 artifactregistry.repositories.uploadArtifacts。如需查找与您的部署服务账号关联的角色,请参阅管理对服务账号的访问权限

  • 如果与部署关联的服务账号具有以下任何角色,则新部署可以使用 Artifact Registry:

    如果不具备这些角色,请向您的部署服务账号授予 Artifact Registry Repository Administrator 角色 (roles/artifactregistry.repoAdmin)。

如果未提供所需权限,您将无法在柔性环境中部署应用。扩缩和重启实例也会失败。

在自动迁移期间, Google Cloud 可能会创建新的代码库,并将映像从 Container Registry 复制到 Artifact Registry。

迁移到 Artifact Registry 以用于手动构建的容器映像

如果您之前是使用 Container Registry 中的预构建或手动构建的容器映像来部署应用,则自动迁移过程不适用。例如,如果您使用 Docker 构建容器映像,将这些映像推送到 Container Registry,并使用 gcloud app deploy --image-url 命令部署应用,那么自动迁移过程将无法正常运行。

如果您使用 Container Registry 中的预构建或手动构建的容器映像来部署应用,请选择以下选项之一来迁移到 Artifact Registry: