管理修订版本

当您向服务执行部署或更改服务配置时,系统会创建一个不可变的修订版本。

以下注意事项适用于修订版本:

  • 您可以指定新修订版本是接收所有流量、不接收任何流量,还是仅接收部分流量,可以逐步发布新修订版本,在多个修订版本之间拆分流量,也可以从某个修订版本回滚。如需了解详情,请参阅回滚、逐步发布和流量迁移
  • 您可以选择使用修订版本标记测试未处理流量的修订版本。
  • 您不需要手动删除修订版本,但可以根据需要这样做。
  • 未提供的修订版本不会使用任何资源,也不会产生费用。
  • 每项服务最多有 1000 个修订版本:如果超出该限制,系统会自动删除较早的修订版本。
  • 系统会自动分配修订版本后缀。如果要使用自己的版本后缀,可以使用 gcloud CLI 参数 --revision-suffix 执行此操作。

所需的角色

如需获得管理 Cloud Run 服务和修订版本所需的权限,请让您的管理员为您授予 Cloud Run 服务的 Cloud Run Developer (roles/run.developer) IAM 角色。

如需查看与 Cloud Run 关联的 IAM 角色和权限的列表,请参阅 Cloud Run IAM 角色Cloud Run IAM 权限。如果您的 Cloud Run 服务与 Google Cloud API(例如 Cloud 客户端库)进行交互,请参阅服务身份配置指南。如需详细了解如何授予角色,请参阅部署权限管理访问权限

查看服务的修订版本列表

控制台

要查看项目中的修订版本列表,请执行以下操作:

  1. 转到 Cloud Run

  2. 在服务列表中找到服务,然后点击该服务。

  3. 点击“修订版本”标签页,以显示该服务的当前修订版本列表。

    修订版本列表

gcloud

要查看给定服务的修订版本列表,请执行以下操作:

  1. 在项目的可用服务列表中查找您的服务名称:

    gcloud run services list
  2. 使用以下命令获取刚刚查找到的服务的所有修订版本:

    gcloud run revisions list --service SERVICE --region REGION

    您需要进行如下替换

    • SERVICE 替换为您的服务名称。
    • REGION 替换为该服务的 Google Cloud 区域。

Cloud Code

如需查看 Cloud Code 附带的修订版本列表,请参阅适用于 IntelliJVisual Studio Code 的 Cloud Run Explorer 指南。

客户端库

如需通过代码查看修订版本列表,请使用以下客户端库:

REST API

如需查看修订版本列表,请向 Cloud Run Admin API revisions 端点发送 GET HTTP 请求。

例如,使用 curl

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X GET \
  -d '' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE-NAME/revisions

您需要进行如下替换:

  • ACCESS_TOKEN 替换为具有查看修订版本的 IAM 权限的账号的有效访问令牌。例如,如果您已登录 gcloud,则可以使用 gcloud auth print-access-token 检索访问令牌。在 Cloud Run 容器实例中,您可以使用容器实例元数据服务器检索访问令牌。
  • SERVICE-NAME 替换为相应服务的名称。
  • REGION 替换为该服务的 Google Cloud 区域。
  • PROJECT-ID 替换为 Google Cloud 项目 ID。

查看修订版本详情

控制台

要查看项目中某个修订版本的详细信息,请执行以下操作:

  1. 转到 Cloud Run

  2. 在服务列表中选择您的服务。

  3. 点击“修订版本”标签页,以显示该服务的当前修订版本列表。

  4. 选择您所需的服务修订版本:

  5. 检查最右侧的“详细信息”面板,以获取该修订版本专有的信息,例如已部署的容器映像的网址、已分配的内存量、环境变量,可能还有版本和源代码库信息

    图片

gcloud

要查看项目中某个修订版本的详细信息,请执行以下操作:

  1. 在项目的可用服务列表中查找您的服务名称:

    gcloud run services list

  2. 使用以下命令获取刚刚查找到的服务的所有修订版本:

    gcloud run revisions list --service SERVICE --region REGION

    您需要进行如下替换

    • SERVICE 替换为您的服务名称。
    • REGION 替换为该服务的 Google Cloud 区域。
  3. 使用以下命令查看有关特定修订版本的更多详细信息:

    gcloud run revisions describe REVISION --region REGION
    您需要进行如下替换

    • REVISION 替换为您要详细了解的修订版本的名称。
    • REGION 替换为该服务的 Google Cloud 区域。

    您可以使用 --format 标志来设置输出的格式。例如,作为 YAML:

    gcloud run revisions describe REVISION --region REGION --format yaml

Cloud Code

如需查看 Cloud Code 附带的修订版本的详细信息,请参阅适用于 IntelliJVisual Studio Code 的 Cloud Run Explorer 指南。

客户端库

如需通过代码查看修订版本的详细信息,请使用以下客户端库:

REST API

如需查看修订版本的相关详细信息,请向 Cloud Run Admin API revisions 端点发送 GET HTTP 请求。

例如,使用 curl

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X GET \
  -d '' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE-NAME/revisions/REVISION-NAME

您需要进行如下替换:

  • ACCESS_TOKEN 替换为具有查看服务详情的 IAM 权限的账号的有效访问令牌。例如,如果您已登录 gcloud,则可以使用 gcloud auth print-access-token 检索访问令牌。在 Cloud Run 容器实例中,您可以使用容器实例元数据服务器检索访问令牌。
  • SERVICE-NAME 替换为相应服务的名称。
  • REVISION-NAME 替换为修订版本的名称。
  • REGION 替换为该服务的 Google Cloud 区域。
  • PROJECT-ID 替换为 Google Cloud 项目 ID。

请注意,非当前修订版本可能显示为 RETIRED 状态,这意味着 Cloud Run 已停用该特定修订版本所需的基础架构。

关于“详细信息”面板中的版本和源代码库信息

如果 Artifact Analysis API 已启用并且容器是使用 Cloud Build 构建的,则“详细信息”面板中会显示版本信息。

此外,如果您使用了 Cloud Build 触发器来构建容器,则“详细信息”面板中还会显示源代码库信息。

删除修订版本

删除修订版本的一个常见使用场景是,您想要确保特定修订版本不会被意外使用。

在以下情况下,您无法删除修订版本:

  • 它能够接收流量,
  • 它是服务的唯一修订版本,
  • 它是该服务的最新修订版本。

当您删除某个修订版本后,该修订版本使用的容器映像不会自动从 Container Registry 或 Artifact Registry 中删除。要从注册表中删除容器映像,请参阅 Container RegistryArtifact Registry 的删除说明。

您无法撤消修订版本删除操作。

您可以使用控制台或命令行:

控制台

要删除修订版本,请执行以下操作

  1. 转到 Cloud Run

  2. 在服务列表中找到服务,然后点击该服务。

  3. 点击“修订版本”标签页,以显示该服务的当前修订版本列表。

  4. 找到您要删除的服务修订版本。

  5. 点击该修订版本左侧的三点状垂直椭圆,以显示“删除”菜单。

    修订版本删除

  6. 点击删除以删除该修订版本。

gcloud

要删除修订版本,请使用以下命令:

gcloud run revisions delete REVISION --region REGION

您需要进行如下替换

  • REVISION 替换为您要删除的修订版本的名称。
  • REGION 替换为该服务的 Google Cloud 区域。

客户端库

如需通过代码删除修订版本,请使用以下客户端库:

REST API

如需删除修订版本,请向 Cloud Run Admin API revisions 端点发送 DELETE HTTP 请求。

例如,使用 curl

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X DELETE \
  -d '' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE-NAME/revisions/REVISION-NAME

您需要进行如下替换:

  • ACCESS_TOKEN 替换为具有删除服务的 IAM 权限的账号的有效访问令牌。例如,如果您已登录 gcloud,则可以使用 gcloud auth print-access-token 检索访问令牌。在 Cloud Run 容器实例中,您可以使用容器实例元数据服务器检索访问令牌。
  • SERVICE-NAME 替换为相应服务的名称。
  • REVISION-NAME 替换为修订版本的名称。
  • REGION 替换为该服务的 Google Cloud 区域。
  • PROJECT-ID 替换为 Google Cloud 项目 ID。

后续步骤

部署修订版本后,您可以执行以下操作: