ジョブを実行する

このページでは、Cloud Run ジョブを実行する方法について説明します。ジョブを実行するとジョブ実行が作成されます。ジョブを正常に実行するには、すべてのタスクが正常に完了する必要があります。ジョブを実行すると、Cloud Logging にログが書き込まれ、Cloud Monitoring にモニタリング データが送信されます。

こうしたロギング機能に加え、実行の詳細ペインを使用して、過去 7 日間に発生したすべての実行とともに、最新の 1,000 件のジョブ実行に関する詳細を表示することもできます。古い実行の詳細は削除され、実行の詳細ペインに表示されなくなります。ただし、古い実行のログとモニタリング データは Cloud LoggingCloud Monitoring で引き続き利用できます。これらは、保持ポリシーの対象となります。

ジョブを実行する

ジョブは、Google Cloud コンソールまたは Google Cloud CLI を使用して実行できます。

コンソール

ジョブを実行するには:

  1. [Cloud Run] の [ジョブ] ページに移動します。

  2. 目的のジョブを探します。

  3. ジョブをクリックして、[ジョブの詳細] ページを表示します。

  4. [実行] をクリックします。

コマンドライン

既存のジョブを実行するには:

gcloud run jobs execute JOB_NAME

実行が完了するまでコマンドを待機させるには、次のコマンドを使用します。

gcloud run jobs execute JOB_NAME --wait

JOB_NAME は、ジョブ名に置き換えます。

クライアント ライブラリ

コードから既存のジョブを実行するには:

REST API

既存のジョブを実行するには、POST HTTP リクエストを jobs.run API メソッドに送信します。

curl の使用例を次に示します。

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

次のように置き換えます。

  • ACCESS_TOKEN は、ジョブを実行する IAM 権限を持つアカウントの有効なアクセス トークンに置き換えます。たとえば、gcloud にログインしている場合は、gcloud auth print-access-token を使用してアクセス トークンを取得できます。Cloud Run コンテナ インスタンスから、コンテナ インスタンス メタデータ サーバーを使用してアクセス トークンを取得できます。
  • JOB-NAME: ジョブの名前。
  • REGION は、ジョブの Google Cloud リージョンに置き換えます。
  • PROJECT-ID は、Google Cloud プロジェクト ID に置き換えます。

ジョブの作成時に直ちにジョブを実行する

コマンドラインを使用する場合は、ジョブを作成した直後にジョブ実行を指定できます。

gcloud run jobs create JOB_NAME --execute-now

特定の実行のジョブ構成をオーバーライドする

ジョブの実行時にジョブに構成されている引数、環境変数、タスク数、タスクのタイムアウトをオーバーライドするには、新しいジョブ実行の開始時にこれらのパラメータを設定します。基になるジョブ定義は変更されないため、指定したパラメータはこの実行にのみ影響し、後続の実行には影響しません。この機能を使用するには run.jobs.runWithOverrides 権限が必要です。この権限は、Cloud Run 管理者と Cloud Run デベロッパーのロールに含まれています。

一般的な使用例は次のとおりです。

  • コードからジョブをプログラムで実行し、引数や環境変数をオーバーライドする場合。たとえば、この実行の入力データがどこにあるかをジョブに指示する場合などです。
  • 各タスクで 1 つの入力データのみを処理するジョブがあり、処理する入力の数に基づいてタスクの数をオーバーライドしたい場合。
  • ジョブの実行時間が実行によって異なり、ジョブの予想実行時間に基づいてタスクのタイムアウトをオーバーライドしたい場合。

実行のジョブ構成をオーバーライドするには:

コンソール

  1. [Cloud Run] の [ジョブ] ページに移動します。

  2. 目的のジョブを探します。

  3. ジョブをクリックして、[ジョブの詳細] ページを表示します。

  4. [編集] ボタンの前にある展開矢印をクリックし、[オーバーライドで実行] をクリックして [オーバーライドを使用して実行] フォームを表示します。

    画像

  5. この実行の引数、環境変数、タスク数、タスクのタイムアウト構成を必要に応じて変更し、[実行] をクリックします。

コマンドライン

次のコマンドを使用します。

gcloud run jobs execute JOB_NAME \
     --args ARGS \
     --update-env-vars KEY=VALUE>,KEY_N=VALUE_N \
     --tasks TASKS \
     --task-timeout TIMEOUT

次のように置き換えます。

クライアント ライブラリ

コードから既存のジョブを実行するには、ジョブ構成をオーバーライドします。

REST API

既存のジョブのジョブ構成をオーバーライドするには、Cloud Run Admin API の jobs エンドポイントPOST HTTP リクエストを送信します。

curl の使用例を次に示します。

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X POST \
  -d '{"overrides": {"containerOverrides": [{"args": ["ARGS"], "env": [{"name": "KEY", "value": "VALUE"}]}], "taskCount": TASK-COUNT, "timeout": "TIMEOUT" }}' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB-NAME:run

次のように置き換えます。

ジョブ実行をキャンセルする

現在実行中の Cloud Run ジョブ実行を停止するには、キャンセル機能を使用します。ジョブ実行をキャンセルすると、現在のジョブ実行が停止します。キャンセルされた実行のステータスは「キャンセル済み」になります。構成データ、ログ、モニタリング データなどの実行は引き続き表示できます。

ジョブ実行をキャンセルしても、ジョブの実行時間に対する Cloud Run ジョブの費用は返金されません。

実行をキャンセルするには:

コンソール

  1. [Cloud Run] の [ジョブ] ページに移動します。

  2. キャンセルするジョブ実行を見つけます

  3. ジョブの実行をクリックして、実行の詳細ページを表示します。

  4. [キャンセル] をクリックします。

コマンドライン

次のコマンドを使用します。

gcloud run jobs executions cancel EXECUTION_NAME

EXECUTION_NAME は、実行名に置き換えます。

コマンドから確認が求められたら、「y」と入力してプロンプトに応答します。

クライアント ライブラリ

コードからジョブ実行をキャンセルするには:

REST API

ジョブ実行をキャンセルするには、Cloud Run Admin API の jobs エンドポイントPOST HTTP リクエストを送信します。

curl の使用例を次に示します。

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X POST \
  -d '' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB-NAME/executions/EXECUTION-NAME:cancel

次のように置き換えます。

  • ACCESS_TOKEN は、ジョブ実行をキャンセルする IAM 権限を持つアカウントの有効なアクセス トークンに置き換えます。たとえば、gcloud にログインしている場合は、gcloud auth print-access-token を使用してアクセス トークンを取得できます。Cloud Run コンテナ インスタンスから、コンテナ インスタンス メタデータ サーバーを使用してアクセス トークンを取得できます。
  • JOB_NAME: ジョブの名前。
  • EXECUTION-NAME: ジョブ実行の名前。
  • REGION は、ジョブの Google Cloud リージョンに置き換えます。
  • PROJECT-ID は、Google Cloud プロジェクト ID に置き換えます。

ジョブ実行を削除する

現在実行中であっても、ジョブ実行を削除できます。実行を削除すると、実行が続行されなくなります。詳細については、ジョブ実行を削除するをご覧ください。

次のステップ

ジョブの実行後、次のことができます。