スケジュールに従ってジョブを実行する

このページでは、Cloud Scheduler を使用して、スケジュールに従って Cloud Run ジョブを実行する方法について説明します。

始める前に

Cloud Run ジョブを作成します

スケジュールに従って実行するように Cloud Run ジョブを構成する

スケジュールに従って Cloud Run ジョブを実行するには:

コンソール

  1. Cloud Run ジョブに移動します。

  2. スケジュールに従って実行するジョブをクリックします。

  3. [トリガー] タブをクリックします。

  4. [スケジューラ トリガーを追加] をクリックします。

  5. プロジェクトで Cloud Scheduler API をまだ有効にしていない場合は、右端のパネルにある [API を有効にする] をクリックします。

  6. Cloud Scheduler ジョブフォームに入力します。

    画像

  7. [スケジュールを定義する] で、次の操作を行います。

    1. Cloud Scheduler ジョブに名前を付けます。

    2. Cloud Scheduler ジョブのリージョンを選択します。Cloud Run ジョブに使用されるリージョンと一致している必要はありません。

    3. ジョブ実行の頻度unix-cron 形式で指定します(例: 0 12 * * *)。

    4. タイムゾーンを選択します。

  8. [続行] をクリックします。

  9. [サービス アカウント] プルダウン メニューで、現在の Cloud Run サービスを呼び出す権限を持つサービス アカウントを選択します。

  10. [作成] をクリックして、指定した頻度で Cloud Run ジョブを実行する Cloud Scheduler ジョブを作成します。

コマンドライン

  1. 最初に Cloud Run ジョブを作成します。

  2. 次のコマンドを実行します。

    gcloud scheduler jobs create http SCHEDULER_JOB_NAME \
      --location SCHEDULER_REGION \
      --schedule="SCHEDULE" \
      --uri="https://CLOUD_RUN_REGION-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/PROJECT-ID/jobs/JOB-NAME:run" \
      --http-method POST \
      --oauth-service-account-email PROJECT-NUMBER-compute@developer.gserviceaccount.com

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

    • SCHEDULER_JOB_NAME: スケジューラ ジョブに付ける名前。
    • SCHEDULER_REGION: Cloud Scheduler でサポートされているリージョン(europe-west2 など)。
    • CLOUD_RUN_REGION: Cloud Run ジョブのリージョン。プレビューするには、europe-west9 を使用します。
    • SCHEDULE: 目的の頻度(0 12 * * * など)。
    • PROJECT-ID: プロジェクト ID。
    • PROJECT-NUMBER: プロジェクト番号。
    • JOB-NAME: Cloud Run ジョブ。

Terraform

Cloud Run ジョブを実行する Cloud Scheduler ジョブを作成するには:

resource "google_cloud_scheduler_job" "job" {
  provider         = google-beta
  name             = "schedule-job"
  description      = "test http job"
  schedule         = "*/8 * * * *"
  attempt_deadline = "320s"
  region           = "us-central1"
  project          = data.google_project.project.project_id

  retry_config {
    retry_count = 3
  }

  http_target {
    http_method = "POST"
    uri         = "https://${google_cloud_run_v2_job.default.location}-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/${data.google_project.project.number}/jobs/${google_cloud_run_v2_job.default.name}:run"

    oauth_token {
      service_account_email = google_service_account.cloud_run_invoker_sa.email
    }
  }

  depends_on = [resource.google_project_service.cloudscheduler_api, resource.google_cloud_run_v2_job.default, resource.google_cloud_run_v2_job_iam_binding.binding]
}

Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。

Cloud Scheduler は、指定された頻度で Cloud Run ジョブを実行します。

次のステップ

この機能の使用後に、次の操作を行うことができます。