Shell-Job in Cloud Run einbinden und erstellen
Hinweise
- 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.
-
Install the Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
Wenn Sie für diese Anleitung ein vorhandenes Projekt verwenden, prüfen Sie, ob Sie die erforderlichen Berechtigungen haben. Wenn Sie ein neues Projekt erstellt haben, haben Sie bereits die erforderlichen Berechtigungen.
-
Verify that billing is enabled for your Google Cloud project.
-
Install the Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
Wenn Sie für diese Anleitung ein vorhandenes Projekt verwenden, prüfen Sie, ob Sie die erforderlichen Berechtigungen haben. Wenn Sie ein neues Projekt erstellt haben, haben Sie bereits die erforderlichen Berechtigungen.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Run Admin API and Cloud Build APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable run.googleapis.com
cloudbuild.googleapis.com Nachdem die Cloud Run Admin API aktiviert wurde, wird das Compute Engine-Standarddienstkonto automatisch erstellt.
- Cloud Run-Preise ansehen oder Kosten mit dem Preisrechner schätzen
-
Cloud Run Source Developer (
roles/run.sourceDeveloper) im Projekt -
Dienstkontonutzer (
roles/iam.serviceAccountUser) für die Dienstidentität -
Loganzeige (
roles/logging.viewer) für das Projekt Erstellen Sie ein neues Verzeichnis mit dem Namen
jobsund ersetzen Sie das aktuelle Verzeichnis durch dieses Verzeichnis:mkdir jobs cd jobsErstellen 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_INDEXverwenden. 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_INDEXgespeichert ist. Die integrierte UmgebungsvariableCLOUD_RUN_TASK_COUNTenthält die Anzahl der Aufgaben, die zum Zeitpunkt der Jobausführung über den Parameter--tasksbereitgestellt werden.Der dargestellte Code zeigt auch, wie Aufgaben mit der integrierten Umgebungsvariable
CLOUD_RUN_TASK_ATTEMPTwiederholt 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.
Rufen Sie in der Google Cloud Console Cloud Run auf:
Klicken Sie in der Jobliste das Kästchen des zu löschenden Jobs an.
Klicken Sie auf Löschen. Dadurch werden alle laufenden Jobausführungen und alle ausgeführten Containerinstanzen beendet.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ausführen der Kurzanleitung benötigen:
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Cloud Build-Dienstkonto Zugriff auf Ihr Projekt gewähren
Cloud Build verwendet automatisch das Compute Engine-Standarddienstkonto als Standard-Cloud Build-Dienstkonto, um Ihren Quellcode und Ihre Cloud Run-Ressource zu erstellen, sofern Sie dieses Verhalten nicht überschreiben.
Damit Cloud Build Ihre Quellen erstellen kann, weisen Sie dem Cloud Build-Dienstkonto die Rolle Cloud Run Builder (roles/run.builder) für Ihr Projekt zu:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_EMAIL_ADDRESS \ --role=roles/run.builder
Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID und SERVICE_ACCOUNT_EMAIL_ADDRESS durch die E-Mail-Adresse des Cloud Build-Dienstkontos. Google CloudWenn Sie das Compute Engine-Standarddienstkonto als Cloud Build-Dienstkonto verwenden, verwenden Sie das folgende Format für die E-Mail-Adresse des Dienstkontos:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Ersetzen Sie PROJECT_NUMBER durch die Google CloudProjektnummer.
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 Run Builder“ übertragen wurde.
Beispieljob schreiben
So schreiben Sie einen Cloud Run-Job, der ein Shell-Skript ausführt:
Ihr Code ist vollständig und kann in einen Container gepackt werden.
Jobcontainer erstellen, an Artifact Registry senden und in Cloud Run bereitstellen
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. europe-west1. 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. europe-west1.
Bereinigen
Löschen Sie alle Ressourcen, die Sie mit dieser Kurzanleitung bereitgestellt haben, um zusätzliche Gebühren für Ihr Google Cloud -Konto zu vermeiden.
Repository löschen
In Cloud Run werden nur die Ressourcen berechnet, die Sie tatsächlich nutzen. Das Speichern des Container-Images in Artifact Registry ist jedoch möglicherweise kostenpflichtig. Wenn Sie Artifact Registry-Repositories löschen möchten, folgen Sie der Anleitung unter Repositories löschen in der Artifact Registry-Dokumentation.
Job löschen
Bei Cloud Run-Jobs fallen nur Kosten an, wenn eine Jobaufgabe ausgeführt wird. So löschen Sie Ihren Cloud Run-Job:
Console
So löschen Sie einen Job:
gcloud
Führen Sie den folgenden Befehl aus, um einen Job zu löschen:
gcloud run jobs delete JOB_NAME
Ersetzen Sie JOB_NAME durch den Namen des Jobs.
Testprojekt löschen
Wenn Sie Ihr Google Cloud -Projekt löschen, wird die Abrechnung für alle Ressourcen in diesem Projekt beendet. So geben Sie alle Google Cloud Ressourcen in Ihrem Projekt frei:
Delete a Google Cloud project:
gcloud projects delete PROJECT_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: