Shell-Job in Cloud Run einbinden und erstellen
Hinweis
- Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist
-
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist
Beispieljob schreiben
So schreiben Sie einen Cloud Run-Job, der ein Shell-Skript ausführt:
Erstellen Sie ein neues Verzeichnis mit dem Namen
jobs
und ersetzen Sie das aktuelle Verzeichnis durch dieses Verzeichnis:mkdir jobs cd jobs
Erstellen Sie eine Dockerfile-Datei mit folgendem Inhalt:
Erstellen Sie im selben Verzeichnis eine
script.sh
-Datei für den tatsächlichen Jobcode. Kopieren Sie die folgenden Beispielzeilen in diese Datei:Cloud Run-Jobs ermöglichen es Nutzern, die Anzahl der Aufgaben anzugeben, die der Job ausführen soll. In diesem Beispielcode wird gezeigt, wie Sie die integrierte Umgebungsvariable
CLOUD_RUN_TASK_INDEX
verwenden. Jede Aufgabe stellt eine laufende Kopie des Containers dar. Aufgaben werden normalerweise parallel ausgeführt. Die Verwendung mehrerer Aufgaben ist nützlich, wenn jede Aufgabe eine Teilmenge Ihrer Daten unabhängig verarbeiten kann.Jede Aufgabe kennt ihren Index, der in der Umgebungsvariable
CLOUD_RUN_TASK_INDEX
gespeichert ist. Die integrierte UmgebungsvariableCLOUD_RUN_TASK_COUNT
enthält die Anzahl der Aufgaben, die zum Zeitpunkt der Jobausführung über den Parameter--tasks
bereitgestellt werden.Der dargestellte Code zeigt auch, wie Aufgaben mit der integrierten Umgebungsvariable
CLOUD_RUN_TASK_ATTEMPT
wiederholt werden. Die Umgebungsvariable gibt an, wie oft diese Aufgabe wiederholt wurde, beginnend bei 0 für den ersten Versuch und erhöht sich um 1 für jeden nachfolgenden Versuch, bis--max-retries
.Außerdem können Sie Fehler generieren, um Wiederholungsversuche zu testen und Fehlerlogs zu generieren, um deren Aussehen zu verstehen.
Ihr Code ist vollständig und kann in einen Container gepackt werden.
Code in ein Container-Image einbinden und in eine Registry verschieben
Wichtig: In dieser Kurzanleitung wird davon ausgegangen, dass Sie Inhaber- oder Bearbeiterrollen in dem Projekt haben, das Sie für die Kurzanleitung verwenden. Andernfalls finden Sie die Berechtigungen unter Cloud Run-Bereitstellungsberechtigungen, Cloud Build-Berechtigungen und Artifact Registry-Berechtigungen.
Build mit Dockerfile erstellen:gcloud builds submit -t "gcr.io/PROJECT_ID/logger-job"
Job in Cloud Run erstellen
So erstellen Sie einen Job mit dem soeben erstellten Container:
gcloud run jobs create job-quickstart \ --image gcr.io/PROJECT_ID/logger-job \ --tasks 50 \ --set-env-vars SLEEP_MS=10000 \ --set-env-vars FAIL_RATE=0.5 \ --max-retries 5 \ --region REGION --project=PROJECT_ID
Dabei ist PROJECT_ID Ihre Projekt-ID und REGION Ihre Region, z. B. us-central1
. Beachten Sie, dass Sie die verschiedenen Parameter auf die Werte ändern können, die Sie zu Testzwecken verwenden möchten.
SLEEP_MS
simuliert die Arbeit und FAIL_RATE
führt dazu, dass X
% der Aufgaben fehlschlagen, sodass Sie mit Parallelität experimentieren und fehlgeschlagene Aufgaben wiederholen können.
Job in Cloud Run ausführen
So führen Sie den gerade erstellten Job aus:
gcloud run jobs execute job-quickstart
Wenn Sie zur Eingabe der Region aufgefordert werden, wählen Sie die Region Ihrer Wahl aus, zum Beispiel us-central1
.
Lokal testen
Sie können den Job lokal ausführen:
docker run --rm -e FAIL_RATE=0.9 -e SLEEP_MS=1000 gcr.io/PROJECT_ID/logger-jobDabei ist PROJECT_ID Ihre Projekt-ID.
Nächste Schritte
Weitere Informationen dazu, wie Sie einen Container aus Quellcode erstellen und diesen mithilfe eines Push-Vorgangs in ein Repository übertragen, finden Sie unter: