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 Vorschau verfügbar.
Sie legen das Zeitlimit für Aufgaben wie auf dieser Seite beschrieben fest. Es gibt kein explizites Zeitlimit für die Ausführung eines Jobs: Wenn alle Aufgaben abgeschlossen sind, ist die Jobausführung abgeschlossen.
Die Einheiten geben eine Dauer an. Sie können die Zeitüberschreitung als Ganzzahlwert in Sekunden, Minuten oder Stunden angeben. Wenn Sie beispielsweise ein Zeitlimit von 10 Minuten und 5 Sekunden festlegen möchten, geben Sie den Wert als 605
Sekunden an.
Wenn für Ihren Job Wiederholungsversuche aktiviert sind, gilt die Zeitlimitseinstellung für jeden Versuch einer Aufgabe. Wenn der Aufgabenversuch nicht innerhalb dieser Zeit abgeschlossen ist, wird er beendet. Je länger ein Job ausgeführt wird, desto wahrscheinlicher ist es, dass Probleme auftreten, die zum Fehlschlagen des Jobs führen, z. B. Fehler bei nachgelagerten Abhängigkeiten, Fehler aufgrund von unzureichendem Speicher oder Infrastrukturprobleme. Wir empfehlen, Wiederholungsversuche für alle Jobs zu aktivieren, insbesondere für Jobs mit Tasks, die lange ausgeführt werden.
Wartungsereignisse
Für Jobs werden regelmäßig Wartungsereignisse durchgeführt. Während eines Wartungsereignisses werden alle laufenden Aufgaben von der aktuellen Maschine auf eine andere Maschine migriert. Während der Migration der Aufgabe kommt es zu einer kurzen Pause.
Beim Migrieren bleibt der Status des Tasks erhalten. Eine wichtige Ausnahme ist jedoch, dass ausgehende VPC-Netzwerkverbindungen während Wartungsereignissen unterbrochen werden. Wir empfehlen die Verwendung von Clientbibliotheken, bei denen gelegentlich Verbindungen zurückgesetzt werden können, ohne dass es Probleme gibt.
Cloud Run gibt jedes Mal eine Lognachricht aus, wenn eine Aufgabe startet und die Migration abschließt.
Wenn Sie Wartungsereignisse jedoch auf eine bestimmte Weise überwachen oder verarbeiten möchten, können Sie das Signal SIGTSTP
abfangen, das 10 Sekunden vor der Migration einer Aufgabe gesendet wird. Nach der Migration erhält die Aufgabe sofort nach dem Neustart ein SIGCONT
-Signal.
Das folgende Go-Beispiel ist eine Funktion, die diese Signale erfasst und einen Logeintrag ausgibt:
func testSignals() { sigs := make(chan os.Signal, 1) signal.Notify(sigs, syscall.SIGTSTP, syscall.SIGCONT) go func() { for { sig := <-sigs log.Printf("Got Signal: %v", sig) } }() }
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Konfigurieren von Cloud Run-Jobs benötigen:
-
Cloud Run-Entwickler (
roles/run.developer
) im Cloud Run-Job -
Dienstkontonutzer (
roles/iam.serviceAccountUser
) für die Dienstidentität
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.
Zeitlimit für Aufgaben festlegen
So geben Sie das Aufgabenzeitlimit für einen Cloud Run-Job an:
Console
Wechseln Sie in der Google Cloud -Console zur Seite „Cloud Run-Jobs“:
Wählen Sie im Menü Jobs aus und klicken Sie auf Container bereitstellen, um die Seite mit den anfänglichen Jobeinstellungen auszufüllen. Wenn Sie einen vorhandenen Job konfigurieren, wählen Sie den Job aus und klicken Sie dann auf Bearbeiten.
Klicken Sie auf Container, Volumes, Verbindungen, Sicherheit, um die Seite mit den Jobattributen zu maximieren.
Klicken Sie auf den Tab Allgemein.
- Geben Sie im Feld Zeitlimit der Aufgabe die maximale Dauer für die Jobaufgaben im aktuellen Job an und wählen Sie eine Zeiteinheit aus. Sie können die Zeitüberschreitung nur als Ganzzahlwert in Sekunden, Minuten oder Stunden angeben. Wenn Sie beispielsweise eine Dauer von 10 Minuten und 5 Sekunden festlegen möchten, geben Sie im Feld Task timeout (Zeitüberschreitung für Aufgabe) den Wert
605
ein und wählen Sie als Time unit (Zeiteinheit) second (Sekunde) aus.
- Geben Sie im Feld Zeitlimit der Aufgabe die maximale Dauer für die Jobaufgaben im aktuellen Job an und wählen Sie eine Zeiteinheit aus. Sie können die Zeitüberschreitung nur als Ganzzahlwert in Sekunden, Minuten oder Stunden angeben. Wenn Sie beispielsweise eine Dauer von 10 Minuten und 5 Sekunden festlegen möchten, geben Sie im Feld Task timeout (Zeitüberschreitung für Aufgabe) den Wert
Klicken Sie auf Erstellen oder Aktualisieren.
gcloud
Für einen Job, den Sie erstellen:
gcloud run jobs create JOB_NAME --image IMAGE_URL --task-timeout TIMEOUT
Ersetzen
- JOB_NAME durch den Namen des Jobs.
- IMAGE_URL durch einen Verweis auf das Container-Image, z. B.
us-docker.pkg.dev/cloudrun/container/job:latest
. - TIMEOUT durch die maximale Dauer für die Jobaufgaben und die Angabe der Zeit und der Einheiten. Beispiel:
10m5s
ist zehn Minuten und fünf Sekunden.
Für einen Job, den Sie aktualisieren:
gcloud run jobs update JOB_NAME --task-timeout TIMEOUT
YAML
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_NAME --format export > job.yaml
Aktualisieren Sie das Attribut
timeoutSeconds:
:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB spec: template: spec: template: spec: containers: - image: IMAGE timeoutSeconds: TIMEOUT
Ersetzen Sie:
- JOB_NAME durch den Namen des Jobs.
- IMAGE_URL durch einen Verweis auf das Container-Image, z. B.
us-docker.pkg.dev/cloudrun/container/job:latest
. - TIMEOUT durch die maximale Dauer für die Jobaufgaben und die Angabe der Zeit und der Einheiten. Sie können die Zeit nur als Ganzzahl in Sekunden, Minuten oder Stunden angeben. Wenn Sie beispielsweise eine Dauer von 10 Minuten und 5 Sekunden festlegen möchten, geben Sie
605
an.
Sie können auch weitere Konfigurationsdetails angeben, z. B. Umgebungsvariablen oder Speicherlimits.
Aktualisieren Sie die vorhandene Jobkonfiguration:
gcloud run jobs replace job.yaml
Terraform
Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.
Fügen Sie einergoogle_cloud_run_v2_job
-Ressource in Ihrer Terraform-Konfiguration Folgendes hinzu:Einstellungen für Aufgabenzeitlimits ansehen
So rufen Sie die aktuellen Zeitlimiteinstellungen für Aufgaben für Ihren Cloud Run-Job auf:
Console
Wechseln Sie in der Google Cloud -Console zur Seite „Cloud Run-Jobs“:
Klicken Sie auf den gewünschten Job, um die Seite Jobdetails zu öffnen.
Klicken Sie auf Jobkonfiguration ansehen und bearbeiten.
Suchen Sie in den Konfigurationsdetails nach der Einstellung für das Zeitlimit der Aufgabe.
gcloud
Verwenden Sie den folgenden Befehl:
gcloud run jobs describe JOB_NAME
Suchen Sie in der zurückgegebenen Konfiguration nach der Zeitlimiteinstellung der Aufgabe.