Auf dieser Seite erfahren Sie, wie Sie mit Cloud Scheduler Folgendes tun: Einen Workflow nach einem bestimmten Zeitplan ausfü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
- Wenn Sie noch keinen Workflow haben, den Sie planen möchten, eines erstellen und bereitstellen.
-
Enable the Cloud Scheduler API.
Alternativ können Sie in einem Terminal den folgenden Befehl eingeben:
gcloud services enable cloudscheduler.googleapis.com
Workflow planen
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.Damit das Hauptkonto, das Ihre Cloud Scheduler-Befehle ausführt, als IAM-Dienstkonto (Identity and Access Management) fungieren kann, weisen Sie eine Rolle zu, mit der das Hauptkonto die Identität des Dienstes übernehmen kann..
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
Dabei gilt:
PROJECT_ID
ist die ID Ihres Google Cloud-Projekts.SERVICE_ACCOUNT_NAME
: Name des zuvor erstellten Dienstkontos.
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 Anrufprotokollierung verwenden, müssen Sie die Anrufprotokollierung auf der Seite Workflows in der Google Cloud Console konfigurieren. Weitere Informationen finden Sie in den folgenden Schritten.
Console
Rufen Sie zum Planen eines Workflows die Seite Workflows in der Google Cloud Console auf:
Wählen Sie auf der Seite "Workflows" einen Workflow aus, um dessen Detailseite aufzurufen.
Klicken Sie auf der Seite Workflow-Details auf edit Bearbeiten.
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.
Zeitplan definieren:
Geben Sie im Feld Name einen Namen für den Cloud Scheduler-Job ein. Er muss unter den Jobs in derselben Region nur einmal vorkommen.
Wählen Sie in der Liste Region eine geeignete Region aus, z. B. us-central1.
Geben Sie im Feld Häufigkeit ein von Ihnen festgelegtes Zeitintervall an. im Format unix-cron. Wenn Sie Ihren Workflow beispielsweise so planen möchten, dass er alle 5 Minuten ausgeführt wird, geben Sie
*/5 * * * *
Wählen Sie aus der Liste Zeitzone die Zeitzone aus. mit dem Cloud Scheduler den Zeitplan interpretieren soll, bereitstellen. Sie können nach Land suchen.
Klicken Sie auf Weiter.
Ausführung konfigurieren:
Geben Sie im Feld Argument des Workflows beliebige Laufzeitargumente an. vor der Ausführung an Ihren Workflow übergeben werden. Argumente müssen im JSON-Format vorliegen Format. Hier einige Beispiele:
Wenn Ihr Workflow keine Laufzeitargumente verwendet, übernehmen Sie den Standardwert von{"firstName":"Sherlock", "lastName":"Holmes"}
{}
oder lassen Sie das Feld leer.Wählen Sie in der Liste Aufruflogebene des Workflows die Ebene des Aufruf-Loggings aus, die Sie während der Ausführung des Workflows anwenden möchten:
- 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: keine Anrufprotokollierung.
Wählen Sie in der Liste Dienstkonto das zuvor erstellte Dienstkonto aus.
Klicken Sie auf Erstellen.
Wenn Sie einen vorhandenen Workflow aktualisieren, ist es nicht erforderlich, um den Workflow noch einmal bereitzustellen.
Der Cloud Scheduler-Job wird jetzt unter Trigger aufgeführt. auf der Seite Workflowdetails.
Wenn Sie den Job aktualisieren oder löschen möchten, müssen Sie den Workflow bearbeiten:
- Klicken Sie auf der Seite Workflowdetails auf edit Bearbeiten.
- Suchen Sie im Bereich Trigger den Job, den Sie aktualisieren möchten, oder Löschen.
- Klicken Sie auf edit Ressource bearbeiten oder delete Ressource löschen.
gcloud
Ö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 Zeitintervall, das Sie mit einem unix-cron-Format angegeben werden. Wenn Sie den Workflow beispielsweise alle 5 Minuten ausführen lassen möchten, geben Sie*/5 * * * *
ein.PROJECT_ID
ist die ID Ihres Google Cloud-Projekts.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.
Alle Jobs in einem Projekt auflisten:
gcloud scheduler jobs list
So löschen Sie einen Job:
gcloud scheduler jobs delete JOB_NAME
Der Workflow wird jetzt gemäß der von Ihnen festgelegten Häufigkeit ausgeführt.
Nächste Schritte
- IAM zur Zugriffssteuerung verwenden
- Laufzeitargumente in einer Ausführungsanfrage übergeben
- Anleitung: Workflows mit Cloud Scheduler planen