Cloud Run 实例的重启政策决定了实例是否应重启以及何时应重启。
重启政策选项
从以下重启政策中进行选择:
on-failure(默认):如果任何容器以非零状态代码退出,或者容器遇到基础设施故障,则实例会重启。对于多容器实例,这意味着任何容器发生故障都会导致整个实例重启。always:当任何容器退出时,实例始终会重启。这包括以代码0正常退出。never:实例永远不会重新启动。当任何容器终止时,实例会立即转换为STOPPED或FAILED状态。
如果您为实例配置了 always 或 on-failure 重启政策,实例会在大约 7 天的生命周期结束后自动重启,因此会无限期运行,除非被其他因素中断。
所需的角色
如需获得配置和部署 Cloud Run 实例所需的权限,请让您的管理员为您授予以下 IAM 角色:
- Cloud Run 实例的 Cloud Run Developer (
roles/run.developer) 角色 - 服务身份的 Service Account User (
roles/iam.serviceAccountUser) 角色
如需查看与 Cloud Run 关联的 IAM 角色和权限的列表,请参阅 Cloud Run IAM 角色和 Cloud Run IAM 权限。如果您的 Cloud Run 实例与Google Cloud API(例如 Cloud 客户端库)进行交互,请参阅服务身份配置指南。如需详细了解如何授予角色,请参阅部署权限和管理访问权限。
配置重启政策
使用 Google Cloud CLI 或 YAML 为 Cloud Run 实例配置重启政策:
gcloud
如需在部署新实例时指定重启政策,请执行以下操作:
gcloud beta run instances deploy INSTANCE \ --image=IMAGE_URL \ --restart-policy=POLICY
如需更新现有实例的重启政策,请执行以下操作:
gcloud beta run instances update INSTANCE \ --restart-policy=POLICY
替换以下内容:
INSTANCE:实例的名称。IMAGE_URL:对容器映像的引用,例如us-docker.pkg.dev/cloudrun/container/hello:latest。POLICY:要应用的重启政策。您可以从on-failure、always或never中进行选择。
YAML
如果您要创建新实例,请跳过此步骤。如果您要更新现有实例,请下载其 YAML 配置:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
以下示例包含 YAML 配置:
apiVersion: run.googleapis.com/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/launch-stage: BETA spec: containers: - name: CONTAINER_NAME image: IMAGE_URL restartPolicy: POLICY
替换以下内容:
INSTANCE:Cloud Run 实例的名称。CONTAINER_NAME:容器的名称。IMAGE_URL:对容器映像的引用,例如us-docker.pkg.dev/cloudrun/container/hello:latest。POLICY:要应用的重启政策。您可以从on-failure、always或never中进行选择。
使用以下命令创建或更新实例:
gcloud beta run instances replace instance.yaml