Jobs ausführen

Auf dieser Seite wird beschrieben, wie Sie Cloud Run-Jobs ausführen. Bei der Ausführung eines Jobs wird eine Jobausführung erstellt, bei der alle Aufgaben erfolgreich ausgeführt werden müssen, damit die Jobausführung erfolgreich ist. Jobausführungen schreiben Logs in Cloud Logging und senden Monitoring-Daten an Cloud Monitoring.

Zusätzlich zu diesen Logging-Features können Sie sich im Bereich "Ausführungsdetails" auch die Details zur Jobausführung für die letzten 1.000 Ausführungen eines Jobs ansehen sowie alle Ausführungen, die in den letzten sieben Tagen aufgetreten. Ältere Ausführungsdetails werden entfernt und sind nicht mehr im Bereich der Ausführungsdetails sichtbar. Die Logs- und Monitoring-Daten für ältere Ausführungen sind jedoch weiterhin in Cloud Logging und Cloud Monitoring verfügbar, unterliegen den Aufbewahrungsrichtlinien für diese Produkte.

Was ist die Jobausführung?

Einen Cloud Run-Job ausführen bedeutet, eine konfigurierte Arbeitslast zu instanziieren und bis zum Abschluss auszuführen. Die Arbeitslast ist in eine oder mehrere parallele oder sequenzielle Aufgaben unterteilt, ohne auf HTTP-Anfragen zu warten oder sie bereitzustellen.

Die wichtigsten Einheiten eines Jobs sind:

  • Job: Eine statische, dauerhafte Konfiguration. Darin werden das Container-Image, die Ressourcenzuweisungen (CPU, Arbeitsspeicher, GPU), die Umgebungsvariablen und die Ausführungsparameter (Gesamtzahl der Aufgaben, Parallelität, Zeitüberschreitungen und Wiederholungsversuche) definiert.

  • Ausführung: Das temporale Lifecycle-Event, das beim Auslösen eines Jobs erstellt wird. Eine „Ausführung“ ist das allgemeine Tracking-Objekt für einen einzelnen Lauf des Jobs.

  • Aufgabe: Eine einzelne laufende Instanz des konfigurierten Containers. Eine Ausführung besteht aus einer oder mehreren Aufgaben (taskCount).

Es gibt zwei grundlegend verschiedene Möglichkeiten, einen Job auszuführen:

  • Wie bei einem regulären Job.

    Wenn Sie einen Job als regulären Job ausführen (Standardeinstellung), beginnt die Ausführung so schnell wie möglich.

  • Als verzögerter Job.

    Wenn Sie einen Job als verzögerten Job ausführen, stimmen Sie zu, nicht dringende Aufgaben gegen einen besseren Preis um bis zu 12 Stunden zu verschieben.

Jeder Job ist entweder regulär oder verzögert. Sie können diese Einstellungen jedoch für eine einzelne Jobausführung überschreiben, sodass ein regulärer Job als verzögerter Job oder ein verzögerter Job als regulärer Job ausgeführt wird. Weitere Informationen finden Sie unter Ausführung eines Jobs verzögern.

Die folgende Tabelle bietet eine detailliertere Ansicht der möglichen Ausführungsszenarien für eine bestimmte Job-Instanz:

Ausführungsmethode Befehl / Trigger Zeitpunkt der Ressourcenzuweisung Kostenstufe Maximale Verzögerung / Zeitüberschreitung Typischer Anwendungsfall
Standard (On-Demand) gcloud run jobs execute Beginnt sofort / so bald wie möglich Standardtarife für Aufträge Sofortiger Start; maximale Laufzeit von 7 Tagen Ad-hoc-Datenverarbeitung, manuelle Trigger, ereignisgesteuerte Pipelines
Erstellen/Aktualisieren und Ausführen gcloud run jobs create/update --execute-now Beginnt sofort nach der Erstellung Standard-Jobraten Sofortiger Start; maximale Laufzeit von 7 Tagen CI/CD-Bereitstellungen, Schemamigrationen, Warm-ups nach der Bereitstellung
Verzögerte Ausführung gcloud beta run jobs execute --delay-execution Starts innerhalb eines systemoptimierten Zeitfensters Rabattierter Preis Max. 12 Stunden Verzögerung vor der automatischen Kündigung, max. 12 Stunden Zeitüberschreitung Nicht dringende Batchjobs, Analysen über Nacht, Bulk-KI-Inferenz
Ausführung mit Überschreibungen gcloud run jobs execute --args=... --tasks=... Beginnt sofort / so bald wie möglich Standardtarife für Aufträge Sofortiger Start; überschriebenes Zeitlimit Partitionsspezifische Backfills, dynamische Batch-Größen, Debug-Läufe

Erforderliche Rollen

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

  • So führen Sie Jobs mit der Google Cloud CLI aus: Cloud Run-Invoker (roles/run.invoker) für den Cloud Run-Job
  • So führen Sie Jobs mit der Google Cloud Console aus, überschreiben Jobkonfigurationen oder brechen Jobausführungen ab: Cloud Run-Entwickler (roles/run.developer) für den Cloud Run-Job

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 mitGoogle 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.

Jobs ausführen

Sie können Jobs über die Google Cloud Console, die gcloud CLI, Clientbibliotheken oder die REST API ausführen.

Console

So führen Sie einen Job aus:

  1. Wechseln Sie in der Google Cloud -Console zur Seite Cloud Run-Jobs:

    Zu Cloud Run-Jobs

  2. Suchen Sie den gewünschten Job.

  3. Klicken Sie auf den gewünschten Job, um die Seite mit den Jobdetails aufzurufen.

  4. Klicken Sie auf Ausführen.

gcloud

Führen Sie den folgenden Befehl aus, um einen vorhandenen Job auszuführen:

gcloud run jobs execute JOB

Wenn der Befehl warten soll, bis die Ausführung abgeschlossen ist, führen Sie den folgenden Befehl aus:

gcloud run jobs execute JOB --wait --region=REGION

Wenn Sie die Logs der Ausführung direkt nach dem Starten ansehen möchten, führen Sie den folgenden Befehl aus:

gcloud beta run jobs execute JOB --tail --region=REGION

Ersetzen Sie Folgendes:

  • JOB: Der Name Ihres Cloud Run-Jobs.
  • REGION: die Region, in der sich die Ressource befindet. Beispiel: europe-west1. Alternativ können Sie das Attribut run/region festlegen.

Clientbibliotheken

So führen Sie einen vorhandenen Job aus Code aus:

REST API

Senden Sie zum Ausführen eines vorhandenen Jobs eine HTTP-Anfrage POST an die API-Methode jobs.run.

Verwenden Sie zum Beispiel 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:run

Ersetzen Sie Folgendes:

  • ACCESS_TOKEN: ein gültiges Zugriffstoken für ein Konto, das die IAM-Berechtigungen zum Ausführen eines Jobs hat. Wenn Sie beispielsweise in gcloud angemeldet sind, können Sie ein Zugriffstoken mit gcloud auth print-access-token abrufen. Innerhalb einer Cloud Run-Containerinstanz können Sie ein Zugriffstoken über den Metadatenserver der Containerinstanz abrufen.
  • PROJECT_ID: die Google Cloud Projekt-ID.
  • REGION: die Google Cloud Region des Jobs.
  • JOB: Der Name Ihres Cloud Run-Jobs.

Jobs sofort ausführen

Console

So führen Sie einen Job sofort aus:

  1. Rufen Sie in der Google Cloud Console die Seite „Cloud Run“ auf:

    Zu Cloud Run

  2. Wählen Sie im Cloud Run-Navigationsmenü Jobs aus:

    1. Wenn Sie einen neuen Job erstellen, klicken Sie auf Container bereitstellen, um die Seite mit den anfänglichen Jobeinstellungen auszufüllen.

    2. Wenn Sie einen vorhandenen Job konfigurieren, wählen Sie den Job aus und klicken Sie dann auf Jobkonfiguration ansehen und bearbeiten.

  3. Klicken Sie vor dem Erstellen oder Aktualisieren des Jobs unten auf der Seite auf das Kästchen Job sofort ausführen.

gcloud

Sie können das Flag --execute-now beim Erstellen oder Aktualisieren eines Jobs angeben.

  • Führen Sie den folgenden Befehl aus, um einen Job zu erstellen:

    gcloud run jobs create JOB \
      --image IMAGE_URL \
      --execute-now \
      --region=REGION
  • Führen Sie den folgenden Befehl aus, um einen Job zu aktualisieren:

    gcloud run jobs update JOB --execute-now --region=REGION

Ersetzen Sie Folgendes:

  • JOB: Der Name Ihres Cloud Run-Jobs.
  • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/job:latest.
  • REGION: die Region, in der sich die Ressource befindet. Beispiel: europe-west1.

YAML

Sie können Ihre Jobspezifikation in einer YAML-Datei speichern und dann mit der gcloud CLI bereitstellen.

  1. Wenn Sie einen neuen Job erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Job aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:

    gcloud run jobs describe JOB --format export > job.yaml
  2. Konfigurieren Sie das Attribut startExecutionToken so:

    apiVersion: run.googleapis.com/v2
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        spec:
          template:
            spec:
              containers:
              - image: IMAGE_URL
      startExecutionToken: START_EXECUTION_SUFFIX

    Ersetzen Sie Folgendes:

    • JOB: Der Name Ihres Cloud Run-Jobs.
    • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/job:latest.
    • START_EXECUTION_SUFFIX: Ein eindeutiger String, der als Suffix zum Erstellen einer neuen Ausführung verwendet wird. Der Job ist bereit, wenn die Ausführung erfolgreich gestartet wurde. Die Summe aus Jobname und Tokenlänge darf weniger als 63 Zeichen betragen.

    Sie können auch weitere Konfigurationen angeben, z. B. Umgebungsvariablen oder Speicherlimits.

  3. Erstellen oder aktualisieren Sie den Dienst mit dem folgenden Befehl:

    gcloud run jobs replace job.yaml

    Der Befehl gcloud run jobs replace verwendet standardmäßig die Datei job.yaml, sofern sie vorhanden ist.

Terraform

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

Fügen Sie einer google_cloud_run_v2_job-Ressource in Ihrer Terraform-Konfiguration Folgendes hinzu:
resource "google_cloud_run_v2_job" "default" {
   name     = "cloudrun-job"
   location = "REGION"
   deletion_protection = false
   start_execution_token = "START_EXECUTION_SUFFIX"
   template {
      template {
         containers {
         image = "us-docker.pkg.dev/cloudrun/container/job"
         }
      }
   }
}

Ersetzen Sie Folgendes:

  • REGION: die Google Cloud Region. Beispiel: europe-west1.
  • START_EXECUTION_SUFFIX: Ein eindeutiger String, der als Suffix zum Erstellen einer neuen Ausführung verwendet wird. Der Job ist bereit, wenn die Ausführung erfolgreich gestartet wurde. Die Summe aus Jobname und Tokenlänge darf maximal 63 Zeichen betragen.

Clientbibliotheken

So führen Sie einen Job sofort aus Code mit Cloud-Clientbibliotheken aus:

REST API

Wenn Sie Jobs sofort nach der Erstellung ausführen möchten, senden Sie eine POST-HTTP-Anfrage an den Endpunkt jobs der Cloud Run Admin API.

Verwenden Sie zum Beispiel curl:

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X POST \
  -d '{
     "template": {
        "template": {
           "containers":
              {
                 "image": "IMAGE_URL"
              }
        }
     },
     "startExecutionToken": "START_EXECUTION_SUFFIX"
  }' \
  "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs?jobId=JOB"

Ersetzen Sie Folgendes:

  • ACCESS_TOKEN: Ein gültiges Zugriffstoken für ein Konto, das die IAM-Berechtigungen zum Erstellen von Jobs hat. Wenn Sie beispielsweise in gcloud angemeldet sind, können Sie ein Zugriffstoken mit gcloud auth print-access-token abrufen. Innerhalb einer Cloud Run-Containerinstanz können Sie ein Zugriffstoken über den Metadatenserver der Containerinstanz abrufen.
  • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/job:latest.
  • START_EXECUTION_SUFFIX: Ein eindeutiger String, der als Suffix zum Erstellen einer neuen Ausführung verwendet wird. Der Job ist bereit, wenn die Ausführung erfolgreich gestartet wurde. Die Summe aus Jobname und Tokenlänge darf maximal 63 Zeichen betragen.
  • PROJECT_ID: die Google Cloud Projekt-ID.
  • REGION: die Google Cloud Region des Jobs.
  • JOB: Der Name Ihres Cloud Run-Jobs.

Ausführung verzögern

Informationen zum Deaktivieren der sofortigen Ausführung oder zum Konvertieren eines regulären Jobs in einen verzögerten Job finden Sie unter Ausführung eines Jobs verzögern.

Jobkonfiguration für eine bestimmte Ausführung überschreiben

Sie können die für einen Job konfigurierten Argumente, Umgebungsvariablen, die Anzahl der Aufgaben und das Zeitlimit für Aufgaben überschreiben, wenn Sie einen Job ausführen. Dazu legen Sie diese Parameter fest, wenn Sie eine neue Jobausführung starten. Die von Ihnen angegebenen Parameter wirken sich nur auf diese und nicht auf nachfolgende Ausführungen aus, da die zugrunde liegende Jobdefinition unverändert bleibt.

Typische Anwendungsfälle:

  • Sie führen den Job programmatisch über Ihren Code aus und möchten Argumente oder Umgebungsvariablen überschreiben, um beispielsweise dem Job mitzuteilen, wo sich die Eingabedaten für diese Ausführung befinden.
  • Sie haben einen Job, bei dem jede Aufgabe nur ein einzelnes Stück der Eingabedaten verarbeiten soll. Sie möchten die Anzahl der Aufgaben auf Basis der Anzahl der zu verarbeitenden Eingaben überschreiben.
  • Die Laufzeit Ihres Jobs variiert zwischen den Ausführungen. Sie möchten das Zeitlimit für die Aufgabe basierend auf der erwarteten Laufzeit des Jobs überschreiben.

Sie können die Jobkonfiguration für eine Ausführung mit der Google Cloud Console, der gcloud CLI, den Clientbibliotheken oder der REST API überschreiben:

Console

  1. Wechseln Sie in der Google Cloud -Console zur Seite „Cloud Run-Jobs“:

    Zu Cloud Run-Jobs

  2. Klicken Sie auf den gewünschten Job, um die Jobdetails zu öffnen.

  3. Klicken Sie vor dem Button Bearbeiten auf den Erweiterungspfeil und dann auf Mit Überschreibungen ausführen, um das Formular Job mit Überschreibungen ausführen aufzurufen.

  4. Konfigurieren Sie die Argumente, Umgebungsvariablen, die Anzahl der Aufgaben und das Zeitlimit für Aufgaben für diese Ausführung und klicken Sie dann auf Ausführen.

gcloud

Führen Sie den Befehl aus:

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

Ersetzen Sie Folgendes:

Clientbibliotheken

So führen Sie einen vorhandenen Job aus Code aus und überschreiben die Jobkonfiguration:

REST API

Wenn Sie die Jobkonfiguration für einen vorhandenen Job überschreiben möchten, senden Sie eine POST-HTTP-Anfrage an den Endpunkt jobs der Cloud Run Admin API.

Verwenden Sie zum Beispiel 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": TASKS, "timeout": "TIMEOUT" }}' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB:run

Ersetzen Sie Folgendes:

Jobausführung abbrechen

Verwenden Sie das Abbruchfeature, um einen derzeit ausgeführten Cloud Run-Job zu beenden. Durch das Abbrechen einer Jobausführung wird die aktuelle Jobausführung beendet. Abgebrochene Ausführungen haben den Status Abgebrochen. Die Ausführung wird weiterhin angezeigt, einschließlich der Konfigurationsdaten, Logs und Monitoringdaten.

Durch das Abbrechen einer Jobausführung werden die Gebühren für Cloud Run-Jobnutzungen für die Zeit, in der der Job ausgeführt wurde, nicht rückgängig gemacht.

Wenn Sie eine Ausführung abbrechen möchten, verwenden Sie die Google Cloud Console, die gcloud CLI, Clientbibliotheken oder die REST API:

Console

  1. Wechseln Sie in der Google Cloud -Console zur Seite „Cloud Run-Jobs“:

    Zu Cloud Run-Jobs

  2. Klicken Sie auf den gewünschten Job, um die Jobdetails zu öffnen.

  3. Wählen Sie die Jobausführung aus, die Sie abbrechen möchten.

  4. Klicken Sie im Menü Aktionen auf das Dreipunkt-Menü und dann auf Abbrechen.

gcloud

Führen Sie den Befehl aus:

gcloud run jobs executions cancel EXECUTION_NAME

Ersetzen Sie EXECUTION_NAME durch den Namen der Ausführung.

Mit diesem Befehl werden Sie zum Bestätigen aufgefordert. Antworten Sie daher auf die Eingabeaufforderung, indem Sie zur Bestätigung y eingeben.

Clientbibliotheken

So brechen Sie eine Jobausführung aus Code ab:

REST API

Wenn Sie die Ausführung eines Jobs abbrechen möchten, senden Sie eine POST-HTTP-Anfrage an den Endpunkt jobs der Cloud Run Admin API.

Verwenden Sie zum Beispiel 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/executions/EXECUTION_NAME:cancel

Ersetzen Sie Folgendes:

  • ACCESS_TOKEN: ein gültiges Zugriffstoken für ein Konto, das die IAM-Berechtigungen zum Abbrechen von Jobausführungen hat. Wenn Sie beispielsweise in gcloud angemeldet sind, können Sie ein Zugriffstoken mit gcloud auth print-access-token abrufen. Innerhalb einer Cloud Run-Containerinstanz können Sie ein Zugriffstoken über den Metadatenserver der Containerinstanz abrufen.
  • PROJECT_ID: die Google Cloud Projekt-ID.
  • REGION: die Google Cloud Region des Jobs.
  • JOB: Der Name Ihres Cloud Run-Jobs.
  • EXECUTION_NAME: Der Name der Jobausführung.

Jobausführung löschen

Sie können eine Jobausführung auch dann löschen, wenn sie gerade ausgeführt wird. Wenn Sie eine Ausführung löschen, wird die Ausführung beendet. Weitere Informationen finden Sie unter Jobausführung löschen.

Nächste Schritte

Nachdem Sie einen Job ausgeführt haben, können Sie so vorgehen: