インスタンスの再起動ポリシーを構成する

Cloud Run インスタンスの再起動ポリシーは、インスタンスを再起動するかどうかと、再起動するタイミングを決定します。

再起動ポリシーのオプション

次の再起動ポリシーから選択します。

  • on-failure(デフォルト): ゼロ以外のステータス コードで終了したコンテナがある場合、またはコンテナでインフラストラクチャ障害が発生した場合、インスタンスが再起動します。マルチコンテナ インスタンスの場合、コンテナの障害が発生すると、インスタンス全体が再起動されます。
  • always: コンテナが終了すると、インスタンスは常に再起動します。これには、コード 0 でのクリーンな終了も含まれます。
  • never: インスタンスは再起動しません。コンテナが終了すると、インスタンスは直ちに STOPPED 状態または FAILED 状態に移行します。

インスタンスの always または on-failure 再起動ポリシーを構成すると、インスタンスは約 7 日間のライフサイクルの終了時に自動的に再起動するため、他の方法で中断されない限り無期限に実行されます。

必要なロール

Cloud Run インスタンスの構成とデプロイに必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

Cloud Run に関連付けられている IAM ロールと権限のリストについては、Cloud Run IAM ロールと Cloud Run IAM 権限をご覧ください。Cloud Run インスタンスがGoogle Cloud API(Cloud クライアント ライブラリなど)と連携している場合は、サービス ID の構成ガイドをご覧ください。ロールの付与の詳細については、デプロイ権限とアクセスの管理をご覧ください。

再起動ポリシーを構成する

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

  1. 新しいインスタンスを作成する場合は、この手順をスキップします。既存のインスタンスを更新する場合は、その YAML 構成をダウンロードします。

    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. 次の例には、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 から選択します。
  3. 次のコマンドを使用して、インスタンスを作成または更新します。

    gcloud beta run instances replace instance.yaml