部署到 Cloud Run

您可以将 Artifact Registry 托管的映像部署到 Cloud Run(全代管式)

部署所需的权限

如需部署到 Cloud Run(全代管式),您必须具有 Owner 或 Editor 角色,或者 Cloud Run Admin 和 Service Account User 角色,或者任何包含此特定的权限列表的自定义角色。

部署新的服务

您可以使用标记或摘要指定容器映像。

首次部署到服务时会创建第一个修订版本。请注意,修订版本是不可变的。如果使用容器映像标记进行部署,则该标记会被解析为摘要,并且修订版本将始终提供此特定摘要。

您可以使用 Cloud Console 或 gcloud 命令行来部署容器。

控制台

如需部署容器映像,请执行以下操作:

  1. 转到 Cloud Run

  2. 点击创建服务以显示“创建服务”页面

  3. 部署平台下:

    1. 选择 Cloud Run(全代管式)作为部署平台。

    2. 选择您希望自己的服务所在的区域。

    3. 输入服务名称。每个区域和项目或每个集群的服务名称不得重复。服务名称日后无法更改,并且在使用 Cloud Run(全代管式)时可公开显示。

  4. 身份验证下:

    • 如果您要创建公共 API 或网站,请选择允许未通过身份验证的调用。选中此复选框后,系统会将 IAM Invoker 角色分配给特殊标识符 allUser。您可以在创建服务后使用 IAM 修改此设置
    • 如果您需要通过身份验证加以保护的安全服务,请选择需要身份验证
  5. 点击下一步以转到服务创建表单的第二页:

  6. “容器映像网址”文本框中,提供映像的网址,例如:us-central1-docker.pkg.dev/my-project/my-repo/my-image:latest

  7. (可选)点击显示高级设置,然后点击后续标签页以设置:

  8. 点击创建以将映像部署到 Cloud Run,然后等待部署完成。

  9. 点击显示的网址链接,以打开已部署服务的端点。

命令行

如需部署容器映像,请执行以下操作:

  1. 运行以下命令。

    gcloud run deploy SERVICE --image REPO-LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE \
    [--platform managed --region RUN-REGION]
    

    其中

    • REPO-LOCATION 是代码库的位置。例如 us-central1
    • SERVICE 是您要部署到的服务的名称。如果服务尚不存在,则此命令会在部署期间创建服务。您可以完全省略此参数,但如果省略它,系统将提示您输入服务名称。
    • PROJECT-ID 是 Google Cloud 项目 ID。
    • REPOSITORY 是存储了映像的代码库的名称。
    • IMAGE 是映像的名称,例如 us-central1-docker.pkg.dev/my-project/my-repo/my-image:latest
    • RUN-REGION 是部署所在的 Cloud Run 位置。如果您设置了具有 gcloud 属性 run/region 的默认 Cloud Run 位置集,则可以省略 --platform managed -region RUN-REGION]

    如果您要创建公共 API 或网站,则可以使用 --allow- unauthenticated 标志来允许在未通过身份验证的情况下调用服务。此操作会Cloud Run Invoker IAM 角色分配给 allUsers。您还可以指定 --no-allow-unauthenticated 以禁止未经身份验证的调用。如果您省略其中任一标志,则系统会在 deploy 命令运行时提示您确认。

  2. 等待部署完成。成功完成后,系统将显示一条成功消息以及已部署服务的网址。