Workflow mit Cloud Scheduler planen

Auf dieser Seite erfahren Sie, wie Sie Cloud Scheduler verwenden, um einen Workflow nach einem bestimmten Zeitplan auszuführen, z. B. jeden Montag um 9:00 Uhr oder alle 15 Minuten. Sie können den Zeitplan entweder in der Google Cloud Console oder mit der Google Cloud CLI konfigurieren.

Hinweis

  1. Wenn Sie noch keinen Workflow haben, den Sie planen möchten, erstellen und stellen Sie einen bereit.
  2. Aktivieren Sie die Cloud Scheduler API, falls sie noch nicht aktiviert ist.

    Rollen, die zum Aktivieren von APIs erforderlich sind

    Zum Aktivieren von APIs benötigen Sie die Berechtigung serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen

    API aktivieren

  3. Oder geben Sie im Terminal den folgenden Befehl ein:
    gcloud services enable cloudscheduler.googleapis.com

Workflow planen

  1. Erstellen Sie ein Dienstkonto, damit Cloud Scheduler Anfragen an die Workflows API senden kann:

    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

    Ersetzen Sie SERVICE_ACCOUNT_NAME durch einen Namen mit 6 bis 30 Zeichen. Er kann alphanumerische Zeichen in Kleinschreibung sowie Bindestriche enthalten. Nachdem Sie ein Dienstkonto erstellt haben, können Sie den Namen nicht mehr ändern.

  2. Damit das Hauptkonto, mit dem Ihre Cloud Scheduler-Befehle ausgeführt werden, als IAM-Dienstkonto (Identity and Access Management) fungieren kann, weisen Sie ihm eine Rolle zu, mit der es die Identität des Dienstkontos übernehmen kann.

  3. Weisen Sie Ihrem neuen Dienstkonto die Rolle workflows.invoker zu, damit das Konto die Berechtigung zum Auslösen Ihres Workflows hat:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
      --role roles/workflows.invoker

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die ID Ihres Projekts in Google Cloud .
    • SERVICE_ACCOUNT_NAME: Name des zuvor erstellten Dienstkontos.
  4. Erstellen Sie einen Cloud Scheduler-Job, der Ihren Workflow auslöst. Verwenden Sie dazu das Dienstkonto, das Sie zuvor zur Authentifizierung erstellt haben.

    Wenn Sie Aufruf-Logging anwenden, müssen Sie das Aufruf-Logging über die Seite Workflows in derGoogle Cloud -Konsole konfigurieren. Weitere Informationen finden Sie in den folgenden Schritten.

    Console

    1. Wenn Sie einen Workflow planen möchten, rufen Sie in der Google Cloud Console die Seite Workflows auf:

      Zur Seite "Workflows"

    2. Wählen Sie auf der Seite "Workflows" einen Workflow aus, um dessen Detailseite aufzurufen.

    3. Klicken Sie auf der Seite Workflowdetails auf Bearbeiten.

    4. Wählen Sie auf der Seite Workflow bearbeiten die Option Neuen Trigger hinzufügen > Cloud Scheduler aus.

      Der Bereich Scheduler-Job erstellen wird geöffnet.

    5. Zeitplan definieren:

      1. Geben Sie im Feld Name einen Namen für den Cloud Scheduler-Job ein. Sie darf unter den Jobs in derselben Region nur einmal vorkommen.

      2. Wählen Sie in der Liste Region eine geeignete Region aus, z. B. us-central1.

      3. Geben Sie im Feld Häufigkeit ein Zeitintervall an, das Sie im unix-cron-Format definieren. Wenn Sie beispielsweise festlegen möchten, dass Ihr Workflow alle 5 Minuten ausgeführt wird, geben Sie */5 * * * * ein.

      4. Wählen Sie in der Liste Zeitzone die Zeitzone aus, die Cloud Scheduler verwenden soll, um den von Ihnen angegebenen Zeitplan zu interpretieren. Sie können nach Land suchen.

    6. Klicken Sie auf Weiter.

    7. Ausführung konfigurieren:

      1. Geben Sie im Feld Argument des Workflows alle Laufzeitargumente an, die vor der Ausführung an den Workflow übergeben werden sollen. Argumente müssen im JSON-Format vorliegen. Beispiel: {"firstName":"Sherlock", "lastName":"Holmes"}. Wenn in Ihrem Workflow keine Laufzeitargumente verwendet werden, übernehmen Sie den Standardwert {} oder lassen Sie das Feld leer.

      2. Wählen Sie in der Liste Aufruflogebene des Workflows die Ebene des Aufruf-Logging aus, die während der Ausführung des Workflows angewendet werden soll:

        • Nicht angegeben: Es wird keine Logging-Ebene angegeben. Das ist die Standardeinstellung. Eine Ausführungslogebene hat Vorrang vor einer Workflow-Logebene, sofern keine Ausführungslogebene angegeben ist (Standardeinstellung); In diesem Fall wird die Workflow-Logebene genutzt.
        • Nur Fehler: Alle erfassten Ausnahmen sowie das Beenden eines Aufrufs aufgrund einer Ausnahme werden protokolliert.
        • Alle Aufrufe: Alle Aufrufe von untergeordneten Workflows oder Bibliotheksfunktionen und deren Ergebnisse werden protokolliert.
        • Keine Protokolle: Es werden keine Anrufe protokolliert.
      3. Wählen Sie in der Liste Dienstkonto das Dienstkonto aus, das Sie zuvor erstellt haben.

    8. Klicken Sie auf Erstellen.

      Wenn Sie einen vorhandenen Workflow aktualisieren, müssen Sie ihn nicht noch einmal bereitstellen.

      Der Cloud Scheduler-Job wird jetzt auf dem Tab Trigger der Seite Workflow-Details aufgeführt.

    9. Wenn Sie den Job aktualisieren oder löschen möchten, müssen Sie den Workflow bearbeiten:

      1. Klicken Sie auf der Seite Workflowdetails auf Bearbeiten.
      2. Suchen Sie im Bereich Trigger nach dem Job, den Sie aktualisieren oder löschen möchten.
      3. Klicken Sie auf  Ressource bearbeiten oder auf  Ressource löschen.

    gcloud

    1. Öffnen Sie ein Terminal und geben Sie den folgenden Befehl ein:

      gcloud scheduler jobs create http JOB_NAME \
          --schedule="FREQUENCY" \
          --uri="https://workflowexecutions.googleapis.com/v1/projects/PROJECT_ID/locations/REGION_NAME/workflows/WORKFLOW_NAME/executions" \
          --message-body="{\"argument\": \"DOUBLE_ESCAPED_JSON_STRING\"}" \
          --time-zone="TIME_ZONE" \
          --oauth-service-account-email="SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"

      Dabei gilt:

      • JOB_NAME: Der Name, den Sie dem Cloud Scheduler-Job geben.
      • FREQUENCY: Ein von Ihnen definiertes Zeitintervall im unix-cron-Format. Wenn Sie beispielsweise festlegen möchten, dass Ihr Workflow alle 5 Minuten ausgeführt wird, geben Sie */5 * * * * ein.
      • PROJECT_ID: die ID Ihres Projekts in Google Cloud .
      • REGION_NAME: Die Region, in der sich Ihr Workflow befindet, z. B. us-central1.
      • WORKFLOW_NAME: Der Name des Workflows, für den Sie die Ausführung planen möchten.
      • DOUBLE_ESCAPED_JSON_STRING: Eine JSON-Codierung aller Argumente, die Sie übergeben. Die doppelten Anführungszeichen innerhalb des Strings in Anführungszeichen werden mit Schrägstrichen (\) maskiert. Beispiel: --message-body="{\"argument\": \"{\\\"foo\\\": \\\"bar\\\"}\"}"
      • TIME_ZONE: Die Zeitzone, mit der Cloud Scheduler den von Ihnen angegebenen Zeitplan interpretieren sollte. Beispiel: America/New_York.
      • SERVICE_ACCOUNT_NAME: Name des zuvor erstellten Dienstkontos.
    2. Alle Jobs in einem Projekt auflisten:

      gcloud scheduler jobs list

    3. So löschen Sie einen Job:

      gcloud scheduler jobs delete JOB_NAME

Ihr Workflow wird jetzt entsprechend der von Ihnen definierten Häufigkeit ausgeführt.

Nächste Schritte