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. Erstellen Sie ein Pub/Sub-Thema, das als Ziel für Ihren Cloud Scheduler-Job verwendet werden soll.
  2. Erstellen Sie einen Cronjob mit Cloud Scheduler und konfigurieren Sie einen wiederkehrenden Zeitplan für den Job.
  3. Führen Sie den Job aus.
  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 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.
  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 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 Berechtigung resourcemanager.projects.create enthält. Weitere Informationen zum Zuweisen von Rollen
    • So erstellen Sie ein Google Cloud -Projekt:

      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 den Namen Ihres Projekts in Google Cloud .

  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 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 Berechtigung serviceusage.services.enable enthält. Weitere Informationen zum Zuweisen von Rollen

    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 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 Berechtigung resourcemanager.projects.create enthält. Weitere Informationen zum Zuweisen von Rollen
    • So erstellen Sie ein Google Cloud -Projekt:

      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 den Namen Ihres Projekts in Google Cloud .

  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 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 Berechtigung serviceusage.services.enable enthält. Weitere Informationen zum Zuweisen von Rollen

    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
    

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.

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

  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 App vorhanden ist.
  2. 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_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