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:
- Pub/Sub-Thema erstellen, das als Ziel für den Cloud Scheduler-Job eingerichtet werden soll
- Cronjob mit Cloud Scheduler erstellen und einen wiederkehrenden Zeitplan für den Job konfigurieren
- Job ausführen
- 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.
Hinweis
- Melden Sie sich in Ihrem Google Cloud Konto an. Wenn Sie noch kein Konto bei Google Cloudhaben, 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.
-
Installieren Sie die 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 -
Erstellen Sie ein Google Cloud Projekt oder wählen Sie ein vorhandenes aus.
Erforderliche Rollen zum Auswählen oder Erstellen eines Projekts
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können ein beliebiges Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“
(
roles/resourcemanager.projectCreator), die dieresourcemanager.projects.createBerechtigung enthält. Rollen zuweisen.
-
Projekt erstellen: Google Cloud
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch einen Namen für das Google Cloud Projekt, das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch Ihren Google Cloud Projektnamen.
-
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.
-
Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.
Aktivieren Sie die Cloud Scheduler und Pub/Sub APIs:
Erforderliche Rollen zum Aktivieren von APIs
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Rollen zuweisen.gcloud services enable cloudscheduler.googleapis.com
pubsub.googleapis.com -
Installieren Sie die 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 -
Erstellen Sie ein Google Cloud Projekt oder wählen Sie ein vorhandenes aus.
Erforderliche Rollen zum Auswählen oder Erstellen eines Projekts
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können ein beliebiges Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“
(
roles/resourcemanager.projectCreator), die dieresourcemanager.projects.createBerechtigung enthält. Rollen zuweisen.
-
Projekt erstellen: Google Cloud
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch einen Namen für das Google Cloud Projekt, das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch Ihren Google Cloud Projektnamen.
-
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.
-
Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.
Aktivieren Sie die Cloud Scheduler und Pub/Sub APIs:
Erforderliche Rollen zum Aktivieren von APIs
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Rollen zuweisen.gcloud services enable cloudscheduler.googleapis.com
pubsub.googleapis.com
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,
-
Cloud Scheduler-Administrator (
roles/cloudscheduler.admin) -
Pub/Sub-Bearbeiter (
roles/pubsub.editor)
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.
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-topic
Cronjob mit Cloud Scheduler erstellen
Mit dem gcloud scheduler jobs create pubsub
Befehl richten Sie eine Arbeitseinheit ein, 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 Nachricht „Hallo Welt“ an Ihr Pub/Sub-Thema sendet.
Sie können den Job jetzt ausführen.
Job ausführen
Sie können Ihren Job nicht nur nach dem angegebenen Zeitplan ausführen, sondern auch sofort ausführen:
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 erhalten hat.
Ergebnisse in Pub/Sub prüfen
Prüfen Sie, ob Ihr Pub/Sub-Thema Nachrichten von Ihrem Job empfängt.
Rufen 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[...]
Bereinigen
Löschen Sie das Projekt von zusammen mit den Ressourcen, damit Ihrem Google Cloud Konto von die auf dieser Seite verwendeten Ressourcen nicht in Rechnung gestellt werden. Google Cloud
Projekt löschen: Google Cloud
gcloud projects delete PROJECT_ID
Alternativ können Sie die Ressourcen löschen, die Sie für diese Kurzanleitung erstellt haben:
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 in Cloud Shell oder auf dem Computer, auf dem Sie die gcloud CLI installiert haben, den folgenden Befehl aus:
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.
Nächste Schritte
Weitere Informationen zu Cloud Scheduler
Weitere Informationen zum Ansehen von Cloud Scheduler-Logs