部署到 App Engine

在 Artifact Registry 中存储应用的容器映像和依赖项,以便部署到 App Engine。

  • 在 Node.js 和 Python 应用中的 Artifact Registry 中声明依赖项。
  • 将应用直接部署到 App Engine 标准环境,或使用 Cloud Build 将应用容器化并部署到 App Engine 柔性环境
  • 将容器映像存储在 Artifact Registry Docker 代码库中,并将它们部署到 App Engine 柔性环境。

所需权限

App Engine 柔性环境
如果 App Engine 柔性环境和 Artifact Registry short 位于同一项目中,则 App Engine 默认服务帐号有权从代码库拉取容器。
如果您还使用 Cloud Build 将应用容器化并存储在 Artifact Registry 中,请向 Cloud Build 服务帐号授予 Artifact Registry Writer 角色。
App Engine 标准环境:
App Engine 标准环境使用 Cloud Build 服务帐号构建和部署应用,包括集成存储在 Artifact Registry 中的依赖项。
  • 如果 App Engine 和 Artifact Registry 位于同一 Google Cloud 项目中,则该服务帐号具有从代码库下载内容的必要权限。
  • 如果 App Engine 和 Artifact Registry 位于不同的项目中,您必须向该服务帐号授予代码库访问权限。
  • 如需提供下载依赖项的只读权限,请将 Artifact Registry Reader 角色授予 Cloud Build 服务帐号。
  • 如果您还使用 Cloud Build 将工件上传到代码库,请向 Cloud Build 服务帐号授予 Artifact Registry Writer 角色。

部署到 App Engine 柔性环境

您可以使用 Google Cloud CLI 将 Artifact Registry 托管的映像部署到 App Engine。

  1. 为您的应用创建 App Engine 配置文件
  2. 构建一个 Docker 映像,并将其push代码库。您可以使用 Cloud Build 构建容器并将其推送到代码库。
  3. 通过运行以下命令将映像部署到 App Engine:

    gcloud app deploy --image-url=LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE:TAG
    

    其中:

    • LOCATION 是代码库的单区域或多区域位置
    • PROJECT 是包含代码库的项目的 ID。如果您的项目 ID 包含英文冒号 (:),请参阅网域级项目
    • REPOSITORY 是存储了映像的代码库的名称。
    • IMAGE 是代码库中的映像名称。
    • TAG 是您要拉取的映像版本的标记。

    例如:

    gcloud app deploy --image-url=us-central1-docker.pkg.dev/my-project/my-repo/my-image:1.0
    

配置对依赖项的访问权限

对于标准环境应用,请参阅 App Engine 标准环境文档中的 npmPython 配置说明。

如需在使用 Cloud Build 运行的构建中添加依赖项,请参阅与 Cloud Build 集成