Bei der Ausführung eines Workflows wird die aktuelle Workflowdefinition ausgeführt, die dem Workflow zugeordnet ist.
Sie können Laufzeitargumente in einer Workflowausführungsanfrage übergeben und mithilfe einer Workflowvariablen auf diese Argumente zugreifen. Weitere Informationen finden Sie unter Laufzeitargumente in einer Ausführungsanfrage übergeben.
Nach Abschluss einer Workflowausführung werden der Verlauf und die Ergebnisse für einen begrenzten Zeitraum gespeichert. Weitere Informationen finden Sie unter Kontingente und Limits.
Hinweise
Von Ihrer Organisation definierte Sicherheitsbeschränkungen verhindern möglicherweise, dass die folgenden Schritte ausgeführt werden. Informationen zur Fehlerbehebung finden Sie unter Anwendungen in einer eingeschränkten Google Cloud-Umgebung entwickeln.
- Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
- Wenn ein Workflow auf andere Google Cloud-Ressourcen zugreift, muss er mit einem Dienstkonto verknüpft sein, das die entsprechenden Berechtigungen hat. Informationen dazu, welches Dienstkonto mit einem vorhandenen Workflow verknüpft ist, finden Sie unter Verknüpftes Dienstkonto eines Workflows prüfen.
Zum Erstellen einer Ressource und zum Anhängen eines Dienstkontos benötigen Sie Berechtigungen zum Erstellen dieser Ressource und zum Übernehmen der Identität des Dienstkontos, das Sie an die Ressource anhängen. Weitere Informationen finden Sie unter Dienstkontoberechtigungen.
- Stellen Sie einen Workflow mit der Google Cloud Console oder der Google Cloud CLI bereit.
Workflow ausführen
Sie können einen Workflow mit den Clientbibliotheken, in der Google Cloud Console, über die gcloud CLI oder durch Senden einer Anfrage an die Workflows REST API ausführen.
Console
Rufen Sie in der Google Cloud Console die Seite Workflows auf, um einen Workflow auszuführen:
Wählen Sie auf der Seite Workflows einen Workflow aus, um die zugehörige Detailseite aufzurufen.
Klicken Sie auf der Seite Workflowdetails auf play_arrow Ausführen.
Auf der Seite Workflow ausführen können Sie im Bereich Eingabe optionale Laufzeitargumente eingeben, die vor der Ausführung an Ihren Workflow übergeben werden. Argumente müssen im JSON-Format vorliegen. Beispiel:
{"animal":"cat"}
. Wenn Ihr Workflow keine Laufzeitargumente verwendet, lassen Sie dieses Feld leer.Geben Sie optional die Ebene des Aufruf-Loggings an, die Sie auf die Ausführung des Workflows anwenden möchten. Wählen Sie in der Liste Anrufprotokollebene eine der folgenden Optionen aus:
- 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.
Klicken Sie auf Execute.
Auf der Seite Ausführungsdetails sehen Sie die Ergebnisse der Ausführung, einschließlich der Ausgabe, der Ausführungs-ID und des Ausführungsstatus sowie des aktuellen oder letzten Schritts der Workflowausführung. Weitere Informationen finden Sie unter Auf Ergebnisse der Workflowausführung zugreifen.
gcloud
Öffnen Sie ein Terminalfenster.
Suchen Sie den Namen des Workflows, den Sie ausführen möchten. Wenn Sie den Namen des Workflows nicht kennen, können Sie den folgenden Befehl eingeben, um alle Workflows aufzulisten:
gcloud workflows list
Sie können den Workflow mit dem Befehl
gcloud workflows run
oder dem Befehlgcloud workflows execute
ausführen:Führen Sie den Workflow aus und warten Sie, bis die Ausführung abgeschlossen ist:
gcloud workflows run WORKFLOW_NAME \ --call-log-level=CALL_LOGGING_LEVEL \ --data=DATA
Führen Sie den Workflow aus, ohne auf den Abschluss des Ausführungsversuchs zu warten:
gcloud workflows execute WORKFLOW_NAME \ --call-log-level=CALL_LOGGING_LEVEL \ --data=DATA
Ersetzen Sie Folgendes:
WORKFLOW_NAME
: Der Name des Workflows.CALL_LOGGING_LEVEL
(optional): Ebene des Aufruf-Loggings, die während der Ausführung angewendet werden sollen. Kann einer der folgenden Werte sein:none
: Es wurde 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.log-errors-only
: Es werden alle erfassten Ausnahmen sowie das Beenden eines Aufrufs aufgrund einer Ausnahme protokolliertlog-all-calls
: Alle Aufrufe von untergeordneten Workflows oder Bibliotheksfunktionen und deren Ergebnisse werden protokolliert.log-none
: Kein Aufruf-Logging.
DATA
(optional): Laufzeitargumente für Ihren Workflow im JSON-Format.
Wenn Sie
gcloud workflows execute
ausgeführt haben, wird die eindeutige ID des Workflow-Ausführungsversuchs zurückgegeben und die Ausgabe sieht in etwa so aus:To view the workflow status, you can use following command: gcloud workflows executions describe b113b589-8eff-4968-b830-8d35696f0b33 --workflow workflow-2 --location us-central1
Geben Sie den im vorherigen Schritt zurückgegebenen Befehl ein, um den Status der Ausführung aufzurufen.
Wenn der Ausführungsversuch erfolgreich ist, sieht die Ausgabe in etwa so aus, wobei ein state
den Erfolg des Workflows angibt und ein status
, der den letzten Workflowschritt der Ausführung angibt.
argument: '{"searchTerm":"Friday"}' endTime: '2022-06-22T12:17:53.086073678Z' name: projects/1051295516635/locations/us-central1/workflows/myFirstWorkflow/executions/c4dffd1f-13db-46a0-8a4a-ee39c144cb96 result: '["Friday","Friday the 13th (franchise)","Friday Night Lights (TV series)","Friday the 13th (1980 film)","Friday the 13th","Friday the 13th (2009 film)","Friday the 13th Part III","Friday the 13th Part 2","Friday (Rebecca Black song)","Friday Night Lights (film)"]' startTime: '2022-06-22T12:17:52.799387653Z' state: SUCCEEDED status: currentSteps: - routine: main step: returnOutput workflowRevisionId: 000001-ac2
Clientbibliotheken
In den folgenden Beispielen wird davon ausgegangen, dass Sie bereits den Workflow myFirstWorkflow
bereitgestellt haben.
Installieren Sie die Clientbibliothek und richten Sie Ihre Entwicklungsumgebung ein. Weitere Informationen finden Sie in der Übersicht zu Workflow-Clientbibliotheken.
Klonen Sie das Repository der Beispiel-App auf Ihren lokalen Computer:
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
Sie können auch das Beispiel als ZIP-Datei herunterladen und extrahieren.
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
Sie können auch das Beispiel als ZIP-Datei herunterladen und extrahieren.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
Sie können auch das Beispiel als ZIP-Datei herunterladen und extrahieren.
Wechseln Sie in das Verzeichnis, das den Workflows-Beispielcode enthält:
Java
cd java-docs-samples/workflows/cloud-client/
Node.js
cd nodejs-docs-samples/workflows/quickstart/
Python
cd python-docs-samples/workflows/cloud-client/
Sehen Sie sich den Beispielcode an:
Java
Node.js (JavaScript)
Node.js (TypeScript)
Python
Im Beispiel wird Folgendes ausgeführt:
- Richtet die Cloud-Clientbibliotheken für Workflows ein.
- Führt einen Workflow aus.
- Fragt die Workflowausführung mit exponentiellem Backoff ab, bis die Ausführung beendet ist.
- Druckt die Ausführungsergebnisse.
Installieren Sie zuerst die Abhängigkeiten, um das Beispiel auszuführen:
Java
mvn compile
Node.js (JavaScript)
npm install
Node.js (TypeScript)
npm install && npm run build
Python
pip3 install -r requirements.txt
Führen Sie das Skript aus:
Java
GOOGLE_CLOUD_PROJECT=PROJECT_ID LOCATION=CLOUD_REGION WORKFLOW=WORKFLOW_NAME mvn compile exec:java -Dexec.mainClass=com.example.workflows.WorkflowsQuickstart
Node.js (JavaScript)
npm start PROJECT_ID CLOUD_REGION WORKFLOW_NAME
Node.js (TypeScript)
npm start PROJECT_ID CLOUD_REGION WORKFLOW_NAME
Python
GOOGLE_CLOUD_PROJECT=PROJECT_ID LOCATION=CLOUD_REGION WORKFLOW=WORKFLOW_NAME python3 main.py
Ersetzen Sie Folgendes:
PROJECT_ID
(erforderlich): die Projekt-ID des Google Cloud-ProjektsCLOUD_REGION
: Standort für den Workflow (Standard:us-central1
)WORKFLOW_NAME
: die ID des Workflows (Standardeinstellung:myFirstWorkflow
)
Die Ausgabe sieht in etwa so aus:
Execution finished with state: SUCCEEDED ["Sunday","Sunday in the Park with George","Sunday shopping","Sunday Bloody Sunday","Sunday Times Golden Globe Race","Sunday All Stars","Sunday Night (South Korean TV series)","Sunday Silence","Sunday Without God","Sunday Independent (Ireland)"]
REST API
Wenn Sie eine neue Ausführung mit der neuesten Version eines bestimmten Workflows erstellen möchten, verwenden Sie die Methode projects.locations.workflows.executions.create
.
Für die Authentifizierung benötigen Sie ein Dienstkonto mit ausreichenden Berechtigungen, um den Workflow auszuführen. Sie können einem Dienstkonto beispielsweise die Rolle „Workflows-Aufrufer“ (roles/workflows.invoker
) zuweisen, damit das Konto die Berechtigung hat, die Workflowausführung auszulösen. Weitere Informationen finden Sie unter Workflows aufrufen.
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
PROJECT_NUMBER
: Die Nummer Ihres Google Cloud-Projekts, die auf der Seite IAM & Verwaltung angezeigt wird.LOCATION
: die Region, in der der Workflow bereitgestellt wird, z. B.us-central1
.WORKFLOW_NAME
: der benutzerdefinierte Name für den Workflow, z. B.myFirstWorkflow
.PARAMETER
: Optional. Wenn der von Ihnen ausgeführte Workflow Laufzeitargumente empfangen kann, die Sie als Teil einer Ausführungsanfrage übergeben, können Sie dem Anfragetext einen JSON-formatierten String hinzufügen, dessen Wert aus einem oder mehreren maskierten Parameter/Wert-Paaren besteht, z. B."{\"searchTerm\":\"asia\"}"
.VALUE
: Optional. Der Wert eines Parameter/Wert-Paars, das Ihr Workflow als Laufzeitargument erhalten kann.CALL_LOGGING_LEVEL
: Optional. Die Protokollebene des Aufrufs, die während der Ausführung angewendet werden soll. Standardmäßig ist keine Logging-Ebene angegeben. Stattdessen gilt die Workflow-Logebene. Weitere Informationen finden Sie unter Logs an Logging senden. Eine der folgenden Optionen:CALL_LOG_LEVEL_UNSPECIFIED
: Es ist keine Logging-Ebene angegeben. Stattdessen wird die Workflow-Logebene angewendet. Das ist die Standardeinstellung. Andernfalls gilt die Ebene des Ausführungslogs und hat Vorrang vor der Workflowlogebene.LOG_ERRORS_ONLY
: Protokolliert alle erfassten Ausnahmen oder wenn ein Aufruf aufgrund einer Ausnahme beendet wird.LOG_ALL_CALLS
: Protokolliert alle Aufrufe von untergeordneten Workflows oder Bibliotheksfunktionen und deren Ergebnisse.LOG_NONE
: Kein Aufruf-Logging.
JSON-Text anfordern:
{ "argument": "{\"PARAMETER\":\"VALUE\"}", "callLogLevel": "CALL_LOGGING_LEVEL" }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Wenn der Vorgang erfolgreich ist, enthält der Antworttext eine neu erstellte Instanz von Execution
:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/workflows/WORKFLOW_NAME/executions/EXECUTION_ID", "startTime": "2023-11-07T14:35:27.215337069Z", "state": "ACTIVE", "argument": "{\"PARAMETER\":\"VALUE\"}", "workflowRevisionId": "000001-2df", "callLogLevel": "CALL_LOGGING_LEVEL", "status": {} }
Status von Ausführungen prüfen
Es gibt mehrere Befehle, mit denen Sie den Status einer Workflowausführung prüfen können.
Geben Sie den folgenden Befehl ein, um eine Liste der Ausführungsversuche eines Workflows und ihrer IDs abzurufen:
gcloud workflows executions list WORKFLOW_NAME
Ersetzen Sie
WORKFLOW_NAME
durch den Namen des Workflows.Der Befehl gibt einen
NAME
-Wert zurück, der in etwa so aussieht:projects/PROJECT_NUMBER/locations/REGION/workflows/WORKFLOW_NAME/executions/EXECUTION_ID
Kopieren Sie die Ausführungs-ID, die im nächsten Befehl verwendet werden soll.
Geben Sie den folgenden Befehl ein, um den Status eines Ausführungsversuchs zu prüfen und auf den Abschluss des Versuchs zu warten:
gcloud workflows executions wait EXECUTION_ID
Ersetzen Sie
EXECUTION_ID
durch die ID des Ausführungsversuchs.Der Befehl wartet, bis der Ausführungsversuch abgeschlossen ist, und gibt dann die Ergebnisse zurück.
Wenn Sie auf den Abschluss der letzten Ausführung warten und dann das Ergebnis der abgeschlossenen Ausführung zurückgeben möchten, geben Sie den folgenden Befehl ein:
gcloud workflows executions wait-last
Wenn Sie in derselben
gcloud
-Sitzung bereits einen Ausführungsversuch unternommen haben, wartet der Befehl, bis der vorherige Ausführungsversuch beendet ist, und gibt dann die Ergebnisse der abgeschlossenen Ausführung zurück. Falls kein vorheriger Versuch vorhanden ist, gibtgcloud
den folgenden Fehler zurück:ERROR: (gcloud.workflows.executions.wait-last) [NOT FOUND] There are no cached executions available.
Geben Sie den folgenden Befehl ein, um den Status der letzten Ausführung abzurufen:
gcloud workflows executions describe-last
Wenn Sie in derselben
gcloud
-Sitzung bereits einen Ausführungsversuch unternommen haben, gibt der Befehl die Ergebnisse der letzten Ausführung zurück, auch wenn diese noch ausgeführt wird. Wenn kein vorheriger Versuch vorhanden ist, gibtgcloud
den folgenden Fehler zurück:ERROR: (gcloud.beta.workflows.executions.describe-last) [NOT FOUND] There are no cached executions available.
Filterausführungen
Sie können Filter auf die Liste der Workflowausführungen anwenden, die von der Methode workflows.executions.list
zurückgegeben werden.
Sie können nach folgenden Feldern filtern:
duration
endTime
executionId
label
startTime
state
stepName
workflowRevisionId
Wenn Sie beispielsweise nach einem Label (labels."fruit":"apple"
) filtern möchten, können Sie eine API-Anfrage ähnlich der folgenden stellen:
GET https://workflowexecutions.googleapis.com/v1/projects/MY_PROJECT/locations/MY_LOCATION/workflows/MY_WORKFLOW/executions?view=full&filter=labels.%22fruit%22%3A%22apple%22"
Wobei:
view=full
gibt eine Ansicht an, mit der definiert wird, welche Felder in den zurückgegebenen Ausführungen gefüllt werden sollen. In diesem Fall werden alle Datenlabels.%22fruit%22%3A%22apple%22
ist die URL-codierte Filtersyntax.
Weitere Informationen finden Sie unter AIP-160-Filterung.