Mit Cloud Tasks können Sie einen Workflow in die Warteschlange stellen und asynchron ausführen.
Cloud Tasks bietet die folgenden Steuerelemente:
- Bestimmte Lieferzeiten planen
- Zustellungsraten verwalten
- Wiederholungsprozess konfigurieren
- Auf einzelne Aufgaben in einer Warteschlange zugreifen und verwalten
- Deduplizierung von Aufgaben aktivieren
Diese Einstellungen können beispielsweise nützlich sein, um Anfragen zu verwalten, die einen Workflow auslösen und die die Limits für Workflows unerwartet überschreiten könnten. Wenn Sie eine Cloud Tasks-Warteschlange mit Ratenlimits und Wiederholungen konfigurieren, können Sie dafür sorgen, dass alle derartigen Anfragen zu Workflowausführungen führen.
Weitere Informationen finden Sie unter Erläuterung von Cloud Tasks.
Wichtige Hinweise:
Die Ratenbegrenzung sollte auf dem Workflow-Limit für Execution API-Schreibanfragen basieren. Bei Bedarf können Sie in der Google Cloud Console eine Erhöhung der meisten Kontingente beantragen. Weitere Informationen zu Anfragen zur Kontingenterhöhung
Cloud Tasks ist darauf ausgelegt, eine Aufgabe „mindestens einmal“ auszuführen. Workflows sorgt jedoch nicht dafür, dass doppelte Anfragen von Cloud Tasks genau einmal verarbeitet werden.
Sie können Ausführungsverzögerungen beseitigen und den Durchsatz maximieren, indem Sie die Ausführungsaussetzung in Workflows aktivieren. Ausstehende Ausführungen werden automatisch ausgeführt, sobald das Kontingent für die Ausführungsparallelität verfügbar ist. Weitere Informationen finden Sie unter Ausführungsrückstände verwalten.
Hinweise
- Wenn Sie noch keinen Workflow haben, den Sie der Warteschlange hinzufügen möchten, erstellen Sie einen.
-
Enable the Cloud Tasks API.
Aufgabe in die Warteschlange stellen, um einen Workflow auszuführen
Erstellen Sie ein Dienstkonto, damit Cloud Tasks 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 Tasks-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_NAME \ --member serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_NAME.iam.gserviceaccount.com \ --role roles/workflows.invoker
Dabei gilt:
PROJECT_NAME
: Der Name Ihres Google Cloud-Projekts.SERVICE_ACCOUNT_NAME
: Name des zuvor erstellten Dienstkontos.
Wenn Sie noch keine Cloud Tasks-Warteschlange haben, erstellen Sie eine.
Erstellen Sie eine Aufgabe, die auf den HTTP-Endpunkt Ihres Workflows ausgerichtet ist. Verwenden Sie dazu das Dienstkonto, das Sie zuvor zur Authentifizierung erstellt haben:
gcloud tasks create-http-task \ --queue="QUEUE_ID" \ --url="https://workflowexecutions.googleapis.com/v1/projects/PROJECT_NAME/locations/REGION_NAME/workflows/WORKFLOW_NAME/executions" \ --body-content="{\"argument\": \"DOUBLE_ESCAPED_JSON_STRING\"}" \ --oauth-service-account-email="SERVICE_ACCOUNT_NAME@PROJECT_NAME.iam.gserviceaccount.com"
Dabei gilt:
QUEUE_ID
: Die Kennzeichnung, die Sie der Cloud Tasks-Warteschlange zugewiesen haben, z. B.my-queue
.PROJECT_NAME
: Der Name 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 eine Aufgabe erstellen 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:--body-content="{\"argument\": \"{\\\"foo\\\": \\\"bar\\\"}\"}"
SERVICE_ACCOUNT_NAME
: Der Name des zuvor erstellten Dienstkontos.
Die Aufgabe wird erstellt und Ihrer Cloud Tasks-Warteschlange hinzugefügt. Die Aufgabe bleibt in der Warteschlange, bis die Workflowausführung beginnt und einen HTTP-Statuscode
2xx
zurückgibt. An diesem Punkt betrachtet Cloud Tasks die Aufgabe als abgeschlossen.
Nächste Schritte
- Anleitung: Workflowausführungen mit einer Cloud Tasks-Warteschlange puffern
- Warteschlangen und Aufgaben verwalten
- Ausführungsrückstände verwalten
- Laufzeitargumente in einer Ausführungsanfrage übergeben