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, können Sie Folgendes tun:

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 Umgebungsvariable 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 markiert. Wenn Aufgaben fehlgeschlagen sind, wird die Jobausführung als fehlgeschlagen markiert, nachdem Cloud Run alle Aufgaben ausgeführt hat.

Standardmäßig wird jede Aufgabe maximal 10 Minuten lang ausgeführt. Sie können den Standardwert ändern, indem Sie die Einstellung für das Zeitlimit der Aufgabe ändern. Das maximale Zeitlimit beträgt 168 Stunden (7 Tage). Die Unterstützung für Zeitüberschreitungen von mehr als 24 Stunden ist in der Vorschau verfügbar.

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 zuzuweisen, 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 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.

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. Docker Hub-Images werden bis zu einer Stunde lang im Cache gespeichert.

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.

Cloud Run unterstützt keine Container-Image-Ebenen, die größer als 9,9 GB sind, wenn die Bereitstellung über Docker Hub oder ein Artifact Registry-Remote-Repository mit einer externen Registry erfolgt.

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. Rufen Sie in der Google Cloud Console die Seite „Cloud Run“ auf:

    Zu Cloud Run

  2. Wählen Sie im Menü Jobs aus und klicken Sie auf Container bereitstellen, 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 bzw. 7 Tage). Die Unterstützung für Zeitüberschreitungen von mehr als 24 Stunden ist in der Vorschau 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 Folgendes:

    • JOB_NAME: der Name des Jobs, den Sie erstellen möchten. Wenn Sie diesen Parameter weglassen, werden Sie beim Ausführen des Befehls nach dem Jobnamen gefragt.
    • IMAGE_URL: Ein 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. Der Höchstwert beträgt 168 Stunden (7 Tage). Die Unterstützung für Zeitüberschreitungen von mehr als 24 Stunden ist in der Vorschau 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_URL

    Ersetzen Sie Folgendes:

    • JOB: Der Name Ihres Cloud Run-Jobs. Jobnamen dürfen maximal 49 Zeichen lang sein und pro Region und Projekt nur einmal vorkommen.
    • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/job:latest.

    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.

Fügen Sie einer google_cloud_run_v2_job-Ressource in Ihrer Terraform-Konfiguration Folgendes hinzu:
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

Senden Sie zum Erstellen eines Jobs 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 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.
  • JOB_NAME: der Name des Jobs, den Sie erstellen möchten.
  • IMAGE_URL: Ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/job:latest.
  • REGION: die Google Cloud Region des Jobs.
  • PROJECT_ID: 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 ist. Sie sollten dabei jedoch auch den Standort der anderen Google Cloud-Produkte berücksichtigen, die der Cloud Run-Dienst verwendet. 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

  • asia-east1 (Taiwan)
  • asia-northeast1 (Tokio)
  • asia-northeast2 (Osaka)
  • asia-south1 (Mumbai, Indien)
  • europe-north1 (Finnland)