部署到 App Engine

将应用的容器映像和依赖项存储在 用于部署到 App Engine 的 Artifact Registry。

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

所需权限

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

部署到 App Engine 柔性环境

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

  1. 为您的应用创建 App Engine 配置文件
  2. 构建一个 Docker 映像,并将其推送到代码库。您可以使用 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 集成