Jobs nach Zeitplan ausführen

Auf dieser Seite wird beschrieben, wie Sie Cloud Run-Jobs mit einem Cloud Scheduler nach einem Zeitplan ausführen.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rollen für Ihren Cloud Run-Job zuzuweisen, um die Berechtigungen zu erhalten, die Sie für die auf dieser Seite beschriebenen Vorgänge benötigen:

  • Cloud Scheduler-Administrator (roles/cloudscheduler.admin) oder eine benutzerdefinierte Rolle mit der Berechtigung cloudscheduler.jobs.create
  • Cloud Run-Invoker (roles/run.invoker), um Jobs mithilfe der Google Cloud CLI auszuführen, oder Cloud Run-Entwickler (roles/run.developer), um Jobs mit der Google Cloud Console auszuführen.

Eine Liste der IAM-Rollen und -Berechtigungen im Zusammenhang mit Cloud Run finden Sie unter IAM-Rollen für Cloud Run und IAM-Berechtigungen für Cloud Run. Wenn Ihr Cloud Run-Job mit Google Cloud APIs wie Cloud-Clientbibliotheken verknüpft ist, lesen Sie die Konfigurationsanleitung für Dienstidentitäten. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Bereitstellungsberechtigungen und Zugriff verwalten.

Hinweise

Erstellen Sie einen Cloud Run-Job.

Cloud Run-Job zur Ausführung nach einem Zeitplan konfigurieren

So führen Sie einen Cloud Run-Job nach Zeitplan aus:

Console

  1. Zu Cloud Run-Jobs

  2. Klicken Sie auf den Job, den Sie nach einem Zeitplan ausführen möchten.

  3. Klicken Sie auf den Tab Trigger.

  4. Klicken Sie auf Planer-Trigger hinzufügen.

  5. Wenn Sie die Cloud Scheduler API noch nicht für Ihr Projekt aktiviert haben, werden Sie dazu im Bereich ganz rechts aufgefordert. Klicken Sie dazu auf API aktivieren.

  6. Cloud Scheduler-Jobformular ausfüllen

    Image

  7. Unter Zeitplan definieren gehen Sie so vor:

    1. Geben Sie einen Namen für den Cloud Scheduler-Job ein.

    2. Wählen Sie eine Region für Ihre Scheduler-Jobs aus. Es muss nicht mit der Region übereinstimmen, die für den Cloud Run-Job verwendet wird.

    3. Geben Sie die Häufigkeit der Ausführung des Jobs im Format unix-cron an, z. B. 0 12 * * *.

    4. Wählen Sie Ihre Zeitzone unter "Timezone" aus.

  8. Klicken Sie auf Weiter.

  9. Wählen Sie im Drop-down-Menü Dienstkonto ein Dienstkonto aus, das die Berechtigung zum Aufrufen des aktuellen Cloud Run-Dienstes hat.

  10. Klicken Sie auf Erstellen, um den Cloud Scheduler-Job zu erstellen, der den Cloud Run-Job dann mit der angegebenen Häufigkeit ausführt.

Befehlszeile

  1. Erstellen Sie zuerst einen Cloud Run-Job..

  2. Führen Sie diesen Befehl aus:

    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

    Ersetzen

    • SCHEDULER_JOB_NAME durch den Namen, den Sie dem Planerjob geben möchten.
    • SCHEDULER_REGION durch eine von Cloud Scheduler unterstützte Region, z. B. europe-west2.
    • CLOUD_RUN_REGION durch die Region Ihres Cloud Run-Jobs. Verwenden Sie für eine Vorschau europe-west9.
    • SCHEDULE durch die gewünschte Häufigkeit, z. B. 0 12 * * *
    • PROJECT-ID durch Ihre Projekt-ID,
    • PROJECT-NUMBER durch Ihre Projektnummer,
    • JOB-NAME durch Ihren Cloud Run-Job.

Terraform

So erstellen Sie einen Cloud Scheduler-Job, der einen Cloud Run-Job ausführt:

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]
}

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

Cloud Scheduler führt den Cloud Run-Job mit der angegebenen Häufigkeit aus.

Nächste Schritte

Nachdem Sie dieses Feature verwendet haben, können Sie Folgendes tun: