このページでは、ジョブの実行を遅延させる方法について説明します。遅延実行を使用すると、緊急性の低いタスクを最大 12 時間遅延させることができます。この機能を使用すると、ジョブは使用率の低い時間帯にプロビジョニングされ、料金が割引されます。詳細については、料金ページをご覧ください。
詳細は以下のとおりです。
- 遅延ジョブの実行のプロビジョニングは最大 12 時間で、遅延ジョブの実行におけるすべてのタスクの合計実行時間は 12 時間です。これらの要件を組み合わせることで、遅延した実行が 24 時間以内に完了することが保証されます。
- 上記を踏まえると、遅延ジョブのタスク タイムアウトの上限は 12 時間です。
- 遅延ジョブの実行が最大期間制限に達すると、実行はシステムによってキャンセルされます。
通常のジョブと遅延ジョブ
すべての Cloud Run ジョブは、通常のジョブまたは遅延ジョブとして作成されます。
ジョブの作成方法に関係なく、他のタイプとして実行できます。詳しくは、以下をご覧ください。
料金
Cloud Run の遅延ジョブの料金の詳細については、Cloud Run の料金をご覧ください。
必要なロール
Cloud Run ジョブの作成に必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
- Cloud Run ジョブに対する Cloud Run デベロッパー ロール(
roles/run.developer) - サービス ID に対するサービス アカウント ユーザー(
roles/iam.serviceAccountUser)ロール - ジョブのコンテナ イメージの Artifact Registry リポジトリに対する Artifact Registry 読み取り(
roles/artifactregistry.reader)
Cloud Run に関連付けられている IAM ロールと権限のリストについては、Cloud Run IAM ロールと Cloud Run IAM 権限をご覧ください。Cloud Run ジョブがGoogle Cloud API(Cloud クライアント ライブラリなど)と連携している場合は、サービス ID の構成ガイドをご覧ください。ロールの付与の詳細については、デプロイ権限とアクセスの管理をご覧ください。
遅延ジョブを作成する
デフォルトでは、新しいジョブを作成して実行すると、実行はできるだけ早く開始されます。
遅延ジョブ機能を使用すると、作成時点から遅延実行が組み込まれたジョブを作成できます。
コンソール
Google Cloud コンソールで、[Cloud Run] ページに移動します。
Cloud Run ナビゲーション メニューから [ジョブ] を選択し、[コンテナをデプロイ] をクリックして、[ジョブの作成] フォームを表示します。
ジョブを作成するの説明に沿って、[ジョブを作成] フォームのフィールドに入力します。
[実行を遅延] を選択して、実行を最大 12 時間遅延させます。
gcloud
--delay-execution フラグを使用してジョブを作成します。
gcloud beta run jobs create JOB_NAME \ --image IMAGE_URL \ --delay-execution \ --region=REGION
ジョブを遅延ジョブとして作成した場合は、実行するために --delay-execution フラグを含める必要はありません。
gcloud beta run jobs execute JOB_NAME \ --region=REGION
YAML
delayExecution 属性を true に設定して job.yaml を更新します。
apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB_NAME spec: delayExecution: "true"
通常のジョブを遅延ジョブとして実行する
定期的なジョブを遅延ジョブとして実行するには:
コンソール
Google Cloud コンソールで、[Cloud Run] ページに移動します。
編集するジョブの名前をクリックします。
[ジョブ構成の表示と編集] をクリックします。
[遅延実行] を選択します。
[更新] をクリックします。
gcloud
次のコマンドを実行します。
gcloud beta run jobs execute JOB_NAME \ --async \ --delay-execution \ --region=REGION
YAML
delayExecution 属性が true に設定された job.yaml を更新します。
apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB_NAME spec: delayExecution: "true"
遅延ジョブを通常のジョブとして実行する
遅延実行を無効にすると、ジョブは通常のジョブに更新されます。つまり、このジョブを次回実行するときは、できるだけ早く実行されます。
遅延実行を無効にするには:
コンソール
Google Cloud コンソールで、[Cloud Run] ページに移動します。
編集するジョブの名前をクリックします。
[ジョブ構成の表示と編集] をクリックします。
[実行の遅延] の選択を解除します。
[更新] をクリックします。
gcloud
--no-delay-execution フラグを使用します。このフラグは update コマンドでも使用できます。通常のジョブにこのフラグを使用すると、ジョブが更新され、遅延実行が無効になります。
gcloud beta run jobs update JOB_NAME \ --image IMAGE_URL \ --no-delay-execution \ --region=REGION
YAML
delayExecution 属性が false に設定された job.yaml を更新します。
apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB_NAME spec: delayExecution: "false"
作成または更新時に遅延ジョブを実行する
--execute-now フラグを使用して遅延ジョブを作成すると、作成時に実行がトリガーされ、ジョブは次の 12 時間以内に実行されます。
作成または更新時に遅延ジョブを実行するには:
コンソール
Google Cloud コンソールで、Cloud Run の [ジョブ] ページに移動します。
既存の遅延ジョブがある場合は、ジョブをクリックしてジョブの詳細ページを表示し、[ジョブ構成の表示と編集] を選択します。新しい遅延ジョブを作成する場合は、[コンテナをデプロイ] を選択します。
ページの下部に移動し、ジョブを作成または更新する前に [すぐにジョブを実行する] チェックボックスをオンにします。
gcloud
遅延ジョブを作成または更新するときに、--execute-now フラグを指定します。
ジョブの作成:
gcloud run jobs create JOB_NAME \ --image IMAGE_URL \ --delay-execution \ --execute-now \ --region=REGION
ジョブを更新する:
gcloud run jobs update JOB_NAME \ --execute-now \ --region=REGION