Python-Job in Cloud Run einbinden und erstellen
Vorbereitung
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Aktivieren Sie die Cloud Run Admin API und die Cloud Build API:
gcloud services enable run.googleapis.com \ cloudbuild.googleapis.com
Nachdem die Cloud Run Admin API aktiviert wurde, wird das Compute Engine-Standarddienstkonto automatisch erstellt.
- Damit Cloud Build Ihre Quellen erstellen kann, weisen Sie dem Compute Engine-Standarddienstkonto die Rolle Cloud Build-Dienstkonto zu. Führen Sie dazu Folgendes aus:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/cloudbuild.builds.builder
Ersetzen Sie
PROJECT_NUMBER
durch Ihre Google Cloud-Projektnummer undPROJECT_ID
durch Ihre Google Cloud-Projekt-ID. Eine detaillierte Anleitung zum Ermitteln der Projekt-ID und der Projektnummer finden Sie unter Projekte erstellen und verwalten.Es dauert einige Minuten, bis die Zuweisung der Rolle „Cloud Build-Dienstkonto“ für das Compute Engine-Standarddienstkonto übertragen wurde.
Beispieljob schreiben
So schreiben Sie einen Job in Python:
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
main.py
-Datei für den tatsächlichen Jobcode. Kopieren Sie die folgenden Beispielzeilen darin: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.
Erstellen Sie eine Textdatei mit dem Namen
Procfile
ohne Dateiendung, die Folgendes enthält:
Ihr Code ist vollständig und kann in einen Container gepackt werden.
Jobcontainer erstellen, an Artifact Registry senden und in Cloud Run bereitstellen
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 in der Rolle „Cloud Run Source Developer“ die erforderlichen Berechtigungen zum Bereitstellen einer Cloud Run-Ressource aus der Quelle.
In dieser Kurzanleitung wird die Bereitstellung aus der Quelle verwendet. dabei wird der Container erstellt, in Artifact Registry hochgeladen und der Job in Cloud Run bereitgestellt:
gcloud run jobs deploy job-quickstart \ --source . \ --tasks 50 \ --set-env-vars SLEEP_MS=10000 \ --set-env-vars FAIL_RATE=0.1 \ --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 --region REGION
Ersetzen Sie REGION durch die Region, die Sie beim Erstellen und Bereitstellen des Jobs verwendet haben, z. B. us-central1
.
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: