Cronjob mit der gcloud CLI planen und ausführen
In dieser Kurzanleitung erfahren Sie, wie Sie mit der gcloud CLI einige grundlegende Vorgänge mit Cloud Scheduler ausführen.
In dieser Kurzanleitung werden folgende Schritte erläutert:
- Erstellen Sie ein Pub/Sub-Thema, das als Ziel für Ihren Cloud Scheduler-Job verwendet werden soll.
- Erstellen Sie einen Cronjob mit Cloud Scheduler und konfigurieren Sie einen wiederkehrenden Zeitplan für den Job.
- Führen Sie den Job aus.
- prüfen, ob der Job erfolgreich ausgeführt wurde
Cloud Scheduler hat ein kostenloses Kontingent. Die Ausführung dieser Kurzanleitung sollte daher keine Kosten verursachen. Weitere Informationen finden Sie unter Preise.
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.
-
Enable the Cloud Scheduler and Pub/Sub 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 cloudscheduler.googleapis.com
pubsub.googleapis.com -
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 Scheduler and Pub/Sub 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 cloudscheduler.googleapis.com
pubsub.googleapis.com -
Cloud Scheduler-Administrator (
roles/cloudscheduler.admin) -
Pub/Sub-Bearbeiter (
roles/pubsub.editor) Richten Sie ein Pub/Sub-Thema als Ziel für den Cronjob ein:
gcloud pubsub topics create cron-topicDadurch wird ein Thema namens
cron-topicerstellt.Erstellen Sie ein Pub/Sub-Abo, um Nachrichten zu empfangen und die Ergebnisse des Jobs anzusehen:
gcloud pubsub subscriptions create cron-sub --topic cron-topicRufen Sie mit dem folgenden Befehl Pub/Sub-Nachrichten aus einem Abo ab:
gcloud pubsub subscriptions pull cron-sub --limit 5Wenn keine Nachrichten abgerufen werden, führen Sie den Befehl noch einmal aus.
Sehen Sie sich die Ergebnisse des ausgeführten Jobs an. Die Ausgabe sollte ungefähr so aussehen:
DATA: Hello world! MESSAGE_ID: 5028933846601543 ORDERING_KEY: ATTRIBUTES: DELIVERY_ATTEMPT: ACK_ID: RFAGFixdRkhRNxkIaFEOT14jPzUgKEUQAgVPAihdeTFXLkFacGhRDRlyfWB9[...]Löschen Sie den Cronjob. Führen Sie in Cloud Shell oder auf dem Computer, auf dem Sie die gcloud CLI installiert haben, den folgenden Befehl aus:
gcloud scheduler jobs delete MY_JOB \ --location="LOCATION"Ersetzen Sie Folgendes:
MY_JOB: Der Name des zu löschenden Jobs.LOCATION: Der Standort des Jobs. Standardmäßig wird der Standort der App Engine-Anwendung des aktuellen Projekts verwendet, sofern eine zugehörige Anwendung vorhanden ist.
Löschen Sie das Pub/Sub-Thema. Führen Sie den Befehl in Cloud Shell oder auf dem Computer aus, auf dem Sie die gcloud CLI installiert haben:
gcloud pubsub topics delete TOPIC_IDErsetzen Sie
TOPIC_IDdurch die ID des zu löschenden Pub/Sub-Themas.Löschen Sie das Pub/Sub-Abo. Führen Sie in Cloud Shell oder auf dem Computer, auf dem Sie die gcloud CLI installiert haben, den folgenden Befehl aus:
gcloud pubsub subscriptions delete SUBSCRIPTION_IDErsetzen Sie
SUBSCRIPTION_IDdurch die ID des zu löschenden Pub/Sub-Abos.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt 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.
Pub/Sub-Thema und -Abo erstellen
Ein Pub/Sub-Thema ist eine Ressource, an die Publisher Nachrichten senden können. Um zu einem Thema veröffentlichte Nachrichten empfangen zu können, müssen Sie ein Abo dieses Themas erstellen.
einen Cronjob mit Cloud Scheduler erstellen
Mit dem Befehl gcloud scheduler jobs create pubsub können Sie eine Arbeitseinheit einrichten, die als Cronjob bezeichnet wird und nach einem wiederkehrenden Zeitplan an ein Pub/Sub-Ziel gesendet wird. Der Zeitplan wird in einem Format angegeben, das auf Unix-Cron basiert. Weitere Informationen finden Sie unter Cronjob-Format und Zeitzone.
gcloud scheduler jobs create pubsub my-cron-job \
--schedule="30 16 * * 7" \
--topic=cron-topic \
--location="us-central1" \
--message-body="Hello world"
Sie haben einen Job erstellt, der sonntags um 16:30 Uhr eine „Hello world“-Nachricht an Ihr Pub/Sub-Thema sendet.
Sie können den Job jetzt ausführen.
Job ausführen
Sie können Ihren Job nicht nur gemäß dem angegebenen Zeitplan ausführen, sondern auch sofort ausführen lassen:
gcloud scheduler jobs run my-cron-job --location="us-central1"
Aufgrund der Erstkonfiguration kann es einige Minuten dauern, bis der erste Job, der in einem Projekt erstellt wurde, ausgeführt wird.
Als Nächstes können Sie prüfen, ob Ihr Pub/Sub-Thema die Nachricht empfangen hat.
Ergebnisse in Pub/Sub prüfen
Prüfen Sie, ob Ihr Pub/Sub-Thema Nachrichten von Ihrem Job empfängt.
Bereinigen
Löschen Sie das Projekt von Google Cloud zusammen mit den Ressourcen, damit Ihrem Konto von Google Cloud die auf dieser Seite verwendeten Ressourcen nicht in Rechnung gestellt werden.
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
Alternativ können Sie die Ressourcen löschen, die Sie für diese Kurzanleitung erstellt haben: