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:

  1. Pub/Sub-Thema erstellen, das als Ziel für den Cloud Scheduler-Job eingerichtet werden soll
  2. Cronjob mit Cloud Scheduler erstellen und einen wiederkehrenden Zeitplan für den Job konfigurieren
  3. Job ausführen
  4. 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

  1. 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.
  2. Installieren Sie die Google Cloud CLI.

  3. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

  4. Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  5. 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 die resourcemanager.projects.create Berechtigung enthält. Rollen zuweisen.
    • Projekt erstellen: Google Cloud

      gcloud projects create PROJECT_ID

      Ersetzen Sie PROJECT_ID durch 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_ID durch Ihren Google Cloud Projektnamen.

  6. 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.

  7. Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.

  8. 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 Berechtigung serviceusage.services.enable enthält. Rollen zuweisen.

    gcloud services enable cloudscheduler.googleapis.com pubsub.googleapis.com
  9. Installieren Sie die Google Cloud CLI.

  10. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

  11. Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  12. 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 die resourcemanager.projects.create Berechtigung enthält. Rollen zuweisen.
    • Projekt erstellen: Google Cloud

      gcloud projects create PROJECT_ID

      Ersetzen Sie PROJECT_ID durch 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_ID durch Ihren Google Cloud Projektnamen.

  13. 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.

  14. Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.

  15. 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 Berechtigung serviceusage.services.enable enthä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,

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.

  1. Richten Sie ein Pub/Sub-Thema als Ziel für den Cronjob ein:

    gcloud pubsub topics create cron-topic
    

    Dadurch wird ein Thema namens cron-topic erstellt.

  2. 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.

  1. Rufen Sie mit dem folgenden Befehl Pub/Sub-Nachrichten aus einem Abo ab:

    gcloud pubsub subscriptions pull cron-sub --limit 5
    

    Wenn keine Nachrichten abgerufen werden, führen Sie den Befehl noch einmal aus.

  2. 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:

  1. 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.
  2. 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_ID
    

    Ersetzen Sie TOPIC_ID durch die ID des zu löschenden Pub/Sub-Themas.

  3. 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_ID
    

    Ersetzen Sie SUBSCRIPTION_ID durch die ID des zu löschenden Pub/Sub-Abos.

Nächste Schritte