Jobs erstellen

Auf dieser Seite wird beschrieben, wie Sie Cloud Run-Jobs aus einem vorhandenen Container-Image erstellen und aktualisieren. Im Gegensatz zu einem Cloud Run-Dienst, der Anfragen überwacht und bereitstellt, führt ein Cloud Run-Job nur seine Aufgaben aus und wird beendet, wenn der Vorgang abgeschlossen ist. Ein Job überwacht weder Anfragen noch verarbeitet er Anfragen.

Nachdem Sie einen Job erstellt oder aktualisiert haben, haben Sie folgende Möglichkeiten:

Sie können einen Job als eine einzelne Aufgabe oder als mehrere unabhängige Aufgaben (bis zu 10.000 Aufgaben) strukturieren, die parallel ausgeführt werden können. Jede Aufgabe führt eine Containerinstanz aus und kann so konfiguriert werden, dass sie bei einem Fehler wiederholt wird. Jede Aufgabe kennt ihren Index, der in der Umgebungsvariable CLOUD_RUN_TASK_INDEX gespeichert ist. Die Gesamtzahl der Aufgaben wird in der Umgebungsvariablen CLOUD_RUN_TASK_COUNT gespeichert. Wenn Sie Daten parallel verarbeiten, ist Ihr Code dafür verantwortlich, zu bestimmen, welche Aufgabe welche Teilmenge der Daten verarbeitet.

Sie können Zeitlimits für Aufgaben festlegen und die Anzahl der Wiederholungen im Fall von Aufgabenfehlern angeben. Wenn eine Aufgabe die maximale Anzahl von Wiederholungsversuchen überschreitet, wird diese Aufgabe als fehlgeschlagen und die Jobausführung als fehlgeschlagen markiert, nachdem alle Aufgaben ausgeführt wurden.

Standardmäßig wird jede Aufgabe maximal 10 Minuten lang ausgeführt. Sie können dies auf eine kürzere oder längere Zeit von bis zu 168 Stunden (7 Tage) ändern. Die Unterstützung für Zeitüberschreitungen von mehr als 24 Stunden ist in der Vorabversion verfügbar. Dazu ändern Sie die Zeitüberschreitung der Aufgabe.

Es gibt kein explizites Zeitlimit für die Ausführung einer Aufgabe: Wenn alle Aufgaben abgeschlossen sind, ist die Aufgabenausführung beendet.

Jobs verwenden die Ausführungsumgebung der zweiten Generation.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Erstellen von Cloud Run-Jobs benötigen:

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.

Unterstützte Container Registries und Images

Sie können direkt in Artifact Registry oder Docker Hub gespeicherte Container-Images verwenden. Google empfiehlt die Verwendung von Artifact Registry.

Sie können Container-Images aus anderen öffentlichen oder privaten Registries (z. B. JFrog Artifactory, Nexus oder GitHub Container Registry) verwenden. Dazu richten Sie ein Remote-Repository von Artifact Registry ein.

Sie sollten Docker Hub nur für die Bereitstellung gängiger Container-Images wie Offizielle Docker-Images oder Docker gesponserte OSS-Images in Betracht ziehen. Für eine höhere Verfügbarkeit empfiehlt Google, diese Docker Hub-Images über ein Artifact Registry-Remote-Repository bereitzustellen.

Neuen Job erstellen

Sie können einen neuen Job über die Google Cloud Console, die Google Cloud CLI, YAML oder Terraform erstellen.

Console

So erstellen Sie einen neuen Job:

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

    Zu Cloud Run

  2. Klicken Sie auf Container bereitstellen und wählen Sie Job aus, um das Formular Job erstellen aufzurufen.

    1. Geben Sie im Formular das Container-Image an, das den Jobcode enthält, oder wählen Sie es aus einer Liste von Containern aus, die zuvor bereitgestellt wurden.
    2. Der Jobname wird automatisch aus dem Container-Image generiert. Sie haben aber die Möglichkeit, den Jobnamen nach Bedarf zu bearbeiten oder zu ändern. Nach dem Erstellen des Jobs kann der Jobname nicht mehr geändert werden.
    3. Wählen Sie die Region aus, in der sich Ihr Job befinden soll. In der Regionsauswahl sind die Regionen mit dem niedrigsten CO2-Ausstoß hervorgehoben.
    4. Geben Sie an, wie viele Aufgaben im Job ausgeführt werden sollen. Ein Job ist erst erfolgreich, wenn alle Aufgaben erfolgreich ausgeführt werden. Die Aufgaben werden standardmäßig parallel ausgeführt.
  3. Klicken Sie auf Container, Volumes, Netzwerk, Sicherheit, um zusätzliche Jobattribute festzulegen.

    • Unter „Aufgabenkapazität“ können Sie Folgendes angeben:
    1. Im Menü Arbeitsspeicher geben Sie an, wie viel Arbeitsspeicher erforderlich ist. Der Standardwert ist der Mindestwert von 512 MiB.
    2. Im Menü CPU geben Sie die erforderliche CPU-Menge an. Der Standardwert ist der Mindestwert von 1 CPU.
    3. Geben Sie unter Zeitlimit der Aufgabe die maximale Zeit in Sekunden an, in der die Aufgabe ausgeführt werden soll (bis zu 168 Stunden, also 7 Tage). Die Unterstützung für Zeitüberschreitungen von mehr als 24 Stunden ist in der Vorabversion verfügbar. Jede Aufgabe muss innerhalb dieses Zeitraums abgeschlossen werden. Der Standardwert beträgt 10 Minuten (600 Sekunden).

    4. Unter Anzahl der Wiederholungsversuche pro fehlgeschlagener Aufgabe geben Sie die Anzahl der Wiederholungen im Fall von Aufgabenfehlern an. Der Standardwert beträgt 3 Wiederholungsversuche.

    • Unter „Parallelität“ können Sie Folgendes angeben:

      1. In den meisten Fällen können Sie So viele Aufgaben wie möglich gleichzeitig ausführen auswählen.
      2. Wenn Sie aufgrund von Skalierungsbeschränkungen für Ressourcen, auf die Ihr Auftrag zugreift, eine niedrigere Grenze festlegen müssen, wählen Sie die Option Maximale Anzahl gleichzeitiger Aufgaben begrenzen und geben Sie die Anzahl der gleichzeitigen Aufgaben im Feld Benutzerdefinierte Parallelitätsgrenze an.
  4. Konfigurieren Sie optional weitere Einstellungen auf den entsprechenden Tabs:

  5. Wenn Sie die Konfiguration Ihres Jobs abgeschlossen haben, klicken Sie auf Erstellen, um den Job in Cloud Run zu erstellen.

  6. Informationen zum Ausführen des Jobs finden Sie unter Jobs ausführen oder Jobs nach einem Zeitplan ausführen.

gcloud

Um die Befehlszeile zu verwenden, müssen Sie bereits die gcloud-CLI eingerichtet haben.

So erstellen Sie einen neuen Job:

  1. Führen Sie diesen Befehl aus:

    gcloud run jobs create JOB_NAME --image IMAGE_URL OPTIONS
    Alternativ können Sie den Bereitstellungsbefehl verwenden:
    gcloud run jobs deploy JOB_NAME --image IMAGE_URL OPTIONS

    • Ersetzen Sie JOB_NAME durch den Namen des Jobs, den Sie erstellen möchten. Sie können diesen Parameter auch weglassen, werden dann jedoch nach dem Jobnamen gefragt.
    • Ersetzen Sie IMAGE_URL durch einen Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/job:latest.
    • Ersetzen Sie optional OPTIONS durch eine der folgenden Optionen:

      Option Beschreibung
      --tasks Akzeptiert Ganzzahlen, die größer oder gleich 1 sind. Der Standardwert ist 1. Maximum ist 10.000. Jeder Aufgabe werden die Umgebungsvariablen CLOUD_RUN_TASK_INDEX mit einem Wert zwischen 0 und der Anzahl der Aufgaben minus 1 zusammen mit CLOUD_RUN_TASK_COUNT bereitgestellt (die Anzahl der Aufgaben).
      --max-retries Die Anzahl der Ausführungsversuche einer fehlgeschlagenen Aufgabe. Sobald eine Aufgabe dieses Limit überschreitet, wird der gesamte Job als fehlgeschlagen markiert. Wenn beispielsweise 1 festgelegt ist, wird eine fehlgeschlagene Aufgabe einmal für insgesamt zwei Versuche wiederholt. Der Standardwert ist 3. Akzeptiert Ganzzahlen von 0 bis 10.
      --task-timeout Akzeptiert eine Dauer wie "2s". Der Standardwert ist 10 Minuten. Maximal ist ein Zeitraum von 168 Stunden (7 Tage) möglich. Die Unterstützung für Zeitüberschreitungen von mehr als 24 Stunden ist in der Vorabversion verfügbar.
      --parallelism Die maximale Anzahl von Aufgaben, die parallel ausgeführt werden können. Aufgaben werden standardmäßig so schnell wie möglich parallel gestartet. Weitere Informationen finden Sie unter Parallelverarbeitung.
      --execute-now Wenn festgelegt, wird unmittelbar nach dem Erstellen des Jobs eine Jobausführung gestartet. Entspricht dem Aufruf von gcloud run jobs create gefolgt von gcloud run jobs execute.

      Zusätzlich zu den oben genannten Optionen können Sie auch weitere Konfigurationen angeben, z. B. Umgebungsvariablen oder Speicherlimits.

      Eine vollständige Liste der verfügbaren Optionen beim Erstellen eines Jobs finden Sie in der Dokumentation zur Befehlszeilenschnittstelle gcloud run jobs create.

  2. Warten Sie, bis die Joberstellung abgeschlossen ist. Nach erfolgreichem Abschluss wird eine Erfolgsmeldung angezeigt.

  3. Informationen zum Ausführen des Jobs finden Sie unter Jobs ausführen oder Jobs nach einem Zeitplan ausführen.

YAML

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

  1. Erstellen Sie eine neue job.yaml-Datei mit folgendem Inhalt:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        spec:
          template:
            spec:
              containers:
              - image: IMAGE

    Ersetzen

    • JOB durch den Namen Ihres Cloud Run-Jobs. Jobnamen dürfen maximal 49 Zeichen lang sein und pro Region und Projekt nur einmal vorkommen.
    • IMAGE durch die URL des Job-Container-Images.

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

  2. Stellen Sie den neuen Job mit dem folgenden Befehl bereit:

    gcloud run jobs replace job.yaml

Terraform

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

Verwenden Sie zum Erstellen eines neuen Cloud Run-Jobs die Ressource google_cloud_run_v2_job und ändern Sie die Datei main.tf wie im folgenden Snippet gezeigt.

resource "google_cloud_run_v2_job" "default" {
  name     = "cloud-run-job"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    template {
      containers {
        image = "us-docker.pkg.dev/cloudrun/container/job:latest"
      }
    }
  }
}

Clientbibliotheken

So erstellen Sie einen Job aus Code:

REST API

Wenn Sie einen Job erstellen 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"}]}}}' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs?jobId=JOB_NAME

Ersetzen Sie:

  • ACCESS_TOKEN durch 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.
  • JOB_NAME mit dem Namen des Jobs, den Sie erstellen möchten.
  • IMAGE_URL durch die URL des Job-Container-Images, z. B. us-docker.pkg.dev/cloudrun/container/job:latest.
  • REGION durch die Google Cloud-Region des Jobs.
  • PROJECT_ID durch die Google Cloud-Projekt-ID.

Cloud Run-Standorte

Cloud Run ist regional. Die Infrastruktur, in der die Cloud Run-Dienste ausgeführt werden, befindet sich demnach in einer bestimmten Region. Aufgrund der Verwaltung durch Google sind die Anwendungen in allen Zonen innerhalb dieser Region redundant verfügbar.

Bei der Auswahl der Region, in der Ihre Cloud Run-Dienste ausgeführt werden, ist vorrangig, dass die Anforderungen hinsichtlich Latenz, Verfügbarkeit oder Langlebigkeit erfüllt werden. Sie können im Allgemeinen die Region auswählen, die Ihren Nutzern am nächsten liegt, aber Sie sollten den Standort der anderen Google Cloud-Produkte berücksichtigen, die von Ihrem Cloud Run-Dienst verwendet werden. Die gemeinsame Nutzung von Google Cloud-Produkten an mehreren Standorten kann sich auf die Latenz und die Kosten des Dienstes auswirken.

Cloud Run ist in diesen Regionen verfügbar:

Unterliegt Preisstufe 1

Unterliegt Preisstufe 2

Wenn Sie bereits einen Cloud Run-Dienst erstellt haben, können Sie dessen Region im Cloud Run-Dashboard der Google Cloud Console aufrufen.

Wenn Sie einen neuen Job erstellen, muss der Cloud Run-Dienst-Agent auf den Container zugreifen können. Dies ist standardmäßig der Fall.

Vorhandenen Job aktualisieren

Bei einer Änderung der Konfigurationseinstellungen muss der Job aktualisiert werden, auch wenn das Container-Image nicht geändert wird. Beachten Sie, dass bei unveränderten Einstellungen diese weiterhin gelten.

Sie können einen vorhandenen Job über die Google Cloud Console, die Google Cloud CLI, YAML oder Terraform aktualisieren.

Console

So aktualisieren Sie einen vorhandenen Job:

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

    Zu Cloud Run

  2. Klicken Sie auf den Tab Jobs, um die Liste der Jobs aufzurufen.

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

  4. Klicken Sie auf Bearbeiten.

  5. Wenn Sie Änderungen an Ihrem Jobcode vorgenommen haben, geben Sie den neuen Container-Image-Digest an.

  6. Ändern Sie bei Bedarf die Anzahl der Aufgaben, die in dem Job enthalten sind.

  7. Optional können Sie durch Klicken auf Container, Volumes, Netzwerk, Sicherheit weitere Jobeinstellungen nach Bedarf aktualisieren:

    • Unter „Aufgabenkapazität“ können Sie Folgendes angeben:
    1. Im Menü Arbeitsspeicher geben Sie an, wie viel Arbeitsspeicher erforderlich ist. Der Standardwert ist der Mindestwert von 512 MiB.
    2. Im Menü CPU geben Sie die erforderliche CPU-Menge an. Der Standardwert ist der Mindestwert von 1 CPU.
    3. Geben Sie unter Zeitlimit der Aufgabe die maximale Zeit in Sekunden an, in der die Aufgabe ausgeführt werden soll (bis zu 168 Stunden, also 7 Tage). Die Unterstützung für Zeitüberschreitungen von mehr als 24 Stunden ist in der Vorabversion verfügbar. Jede Aufgabe muss innerhalb dieses Zeitraums abgeschlossen werden. Der Standardwert beträgt 10 Minuten (600 Sekunden).
    4. Unter Anzahl der Wiederholungsversuche pro fehlgeschlagener Aufgabe geben Sie die Anzahl der Wiederholungen im Fall von Aufgabenfehlern an. Der Standardwert beträgt 3 Wiederholungsversuche.
    • Unter „Parallelität“ können Sie Folgendes angeben:

      1. In den meisten Fällen können Sie So viele Aufgaben wie möglich gleichzeitig ausführen auswählen.
      2. Wenn Sie aufgrund von Skalierungsbeschränkungen für Ressourcen, auf die Ihr Auftrag zugreift, eine niedrigere Grenze festlegen müssen, wählen Sie die Option Anzahl gleichzeitiger Aufgaben begrenzen und geben Sie die Anzahl der gleichzeitigen Aufgaben im Feld Benutzerdefinierte Parallelitätsgrenze an.
  8. Konfigurieren Sie optional weitere Einstellungen auf den entsprechenden Tabs:

  9. Wenn Sie die Konfiguration Ihres Jobs abgeschlossen haben, klicken Sie auf Speichern, um den Job in Cloud Run zu erstellen. Anschließend müssen Sie etwas warten, bis der Job erstellt wird.

  10. Informationen zum Ausführen des Jobs finden Sie unter Jobs ausführen oder Jobs nach einem Zeitplan ausführen.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Führen Sie diesen Befehl aus:

    gcloud run jobs update JOB_NAME

    Ersetzen Sie:

    • JOB_NAME durch den Namen des Jobs, den Sie aktualisieren möchten.
    • Ersetzen Sie optional OPTIONS durch die folgenden Optionen:

      Option Beschreibung
      --tasks Akzeptiert Ganzzahlen, die größer oder gleich 1 sind. Der Standardwert ist 1. Maximum ist 10.000. Jeder Aufgabe werden die Umgebungsvariablen CLOUD_RUN_TASK_INDEX mit einem Wert zwischen 0 und der Anzahl der Aufgaben minus 1 zusammen mit CLOUD_RUN_TASK_COUNT bereitgestellt (die Anzahl der Aufgaben).
      --max-retries Die Anzahl der Ausführungsversuche einer fehlgeschlagenen Aufgabe. Sobald eine Aufgabe dieses Limit überschreitet, wird der gesamte Job als fehlgeschlagen markiert. Wenn beispielsweise 1 festgelegt ist, wird eine fehlgeschlagene Aufgabe einmal für insgesamt zwei Versuche wiederholt. Der Standardwert ist 3. Akzeptiert Ganzzahlen von 0 bis 10.
      --task-timeout Akzeptiert eine Dauer wie "2s". Der Standardwert ist 10 Minuten. Maximal ist ein Zeitraum von 168 Stunden (7 Tage) möglich. Die Unterstützung für Zeitüberschreitungen von mehr als 24 Stunden ist in der Vorabversion verfügbar.
      --parallelism Die maximale Anzahl von Aufgaben, die parallel ausgeführt werden können. Aufgaben werden standardmäßig so schnell wie möglich parallel gestartet. Weitere Informationen finden Sie unter Parallelverarbeitung.

    Zusätzlich zu den oben genannten Optionen können Sie weitere optionale Konfigurationseinstellungen festlegen:

    Eine vollständige Liste der verfügbaren Optionen beim Erstellen eines Jobs finden Sie in der Dokumentation zur Befehlszeilenschnittstelle gcloud run jobs create.

  3. Warten Sie, bis die Jobaktualisierung abgeschlossen ist. Nach erfolgreichem Abschluss des Vorgangs wird eine Erfolgsmeldung angezeigt, die etwa so aussieht:

    Job [JOB_NAME] has been successfully updated.
    View details about this job by running `gcloud run jobs describe JOB_NAME`.
    See logs for this execution at: https://console.cloud.google.com/logs/viewer?project=PROJECT_ID&resource=cloud_run_revision/service_name/JOB_NAME
  4. Informationen zum Ausführen des Jobs finden Sie unter Jobs ausführen oder Jobs nach einem Zeitplan ausführen.

YAML

Wenn Sie die Konfiguration eines vorhandenen Jobs herunterladen oder aufrufen müssen, speichern Sie die Ergebnisse mit dem folgenden Befehl in einer YAML-Datei:

gcloud run jobs describe JOB --format export > job.yaml

Ändern Sie in einer YAML-Jobkonfigurationsdatei alle untergeordneten spec.template-Attribute wie gewünscht, um die Konfigurationseinstellungen zu aktualisieren, und stellen Sie sie dann noch einmal bereit:

  1. Aktualisieren Sie die vorhandene Jobkonfiguration:

    gcloud run jobs replace job.yaml
  2. Informationen zum Ausführen des Jobs finden Sie unter Jobs ausführen oder Jobs nach einem Zeitplan ausführen.

Terraform

Nehmen Sie mit dem Befehl terraform apply Änderungen an der Jobkonfiguration in der Datei main.tf vor. Eine detaillierte Terraform-Anleitung ist verfügbar für:

Weitere Informationen finden Sie in den Befehlszeilenoptionen terraform apply.

Clientbibliotheken

So aktualisieren Sie einen vorhandenen Job aus Code:

REST API

Wenn Sie einen Job aktualisieren möchten, senden Sie eine PATCH-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 PATCH \
  -d '{template: {template: {containers: [{image: "IMAGE_URL"}]}}}' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB_NAME

Ersetzen Sie:

  • ACCESS_TOKEN durch ein gültiges Zugriffstoken für ein Konto, das die IAM-Berechtigungen zum Aktualisieren 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.
  • JOB_NAME durch den Namen des Jobs, den Sie aktualisieren möchten.
  • IMAGE_URL durch die URL des Job-Container-Images, z. B. us-docker.pkg.dev/cloudrun/container/job:latest.
  • REGION durch die Google Cloud-Region des Jobs.
  • PROJECT_ID durch die Google Cloud-Projekt-ID.

Beispielcode

Codebeispiele für einfache Jobs finden Sie in den sprachspezifischen Kurzanleitungen.

Nächste Schritte

Nachdem Sie einen Job erstellt oder aktualisiert haben, können Sie Folgendes tun: