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.
Hinweis
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch 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.
-
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 eines aus.
Rollen, die zum Auswählen oder Erstellen eines Projekts erforderlich sind
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können jedes 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 die Berechtigungresourcemanager.projects.createenthält. Weitere Informationen zum Zuweisen von Rollen
-
So erstellen Sie ein Google Cloud -Projekt:
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 den Namen Ihres Projekts in Google Cloud .
-
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 API und die Pub/Sub API:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Weitere Informationen zum Zuweisen von Rollengcloud 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 eines aus.
Rollen, die zum Auswählen oder Erstellen eines Projekts erforderlich sind
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können jedes 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 die Berechtigungresourcemanager.projects.createenthält. Weitere Informationen zum Zuweisen von Rollen
-
So erstellen Sie ein Google Cloud -Projekt:
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 den Namen Ihres Projekts in Google Cloud .
-
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 API und die Pub/Sub API:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Weitere Informationen zum Zuweisen von Rollengcloud 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
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-east1" \
--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-east1"
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.
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 Google Cloud zusammen mit den Ressourcen, damit Ihrem Konto von Google Cloud die auf dieser Seite verwendeten Ressourcen nicht in Rechnung gestellt werden.
Google Cloud -Projekt löschen:
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 App 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.