Auf dieser Seite wird gezeigt, wie Sie mit Jumps oder Schleifen die Reihenfolge steuern können, in der Ihre Workflowschritte ausgeführt werden. Mit einfachen Jumps können Sie definieren, welcher Schritt der Workflow als Nächstes ausgeführt wird. Bedingte Jumps basieren auf einfachen Jumps, sodass Sie bedingte Ausdrücke verwenden können, um die Reihenfolge der Ausführung über einen Workflow zu steuern. Sie können beispielsweise bestimmte Schritte nur ausführen, wenn eine Variable oder Antwort von einem anderen Workflowschritt bestimmte Kriterien erfüllt.
In den Beispielen auf dieser Seite wird eine Beispiel-API verwendet, die den Wochentag zurückgibt.
Hinweise
- 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.
-
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
- Sie sollten bereits einen Workflow haben, in dem Sie die Reihenfolge der Ausführung ändern möchten. Informationen zum Erstellen und Bereitstellen eines Workflows finden Sie unter Workflow erstellen und aktualisieren.
Ausführungsreihenfolge mithilfe von Jumps ändern
Standardmäßig sind alle Workflows sortiert, wobei jeder Schritt in der Reihenfolge ausgeführt wird, die Sie im Quellcode des Workflows definieren. Sie können diese Standardreihenfolge mithilfe von Jumps überschreiben.
Einfache Jumps
Sie können mithilfe von einfachen Jumps angeben, welcher Schritt im nächsten Workflow ausgeführt werden soll.
Console
Öffnen Sie die Seite „Workflows“ in der Google Cloud Console:
Zu „Workflows“Wählen Sie den Namen des Workflows aus, bei dem Sie die Reihenfolge der vorhandenen Schritte ändern möchten.
Wählen Sie auf der Seite Workflow bearbeiten die Option Weiter aus, um zum Workflow-Editor zu wechseln.
Fügen Sie das Feld
next
am Ende eines Schritts hinzu, um den Workflow anzuweisen, zu einem bestimmten Schritt zu springen:YAML
- step_a: ... next: STEP_NAME_TO_JUMP_TO - step_b: ... - next_step: ...
JSON
[ { "step_a": { ... "next": "STEP_NAME_TO_JUMP_TO" } } { "step_b": { ... } } { "next_step": { ... } } ]
Ersetzen Sie
STEP_NAME_TO_JUMP_TO
durch den Namen des Schritts, den der Workflow als Nächstes ausführen soll. Beispiel:next_step
.Wählen Sie Bereitstellen.
gcloud
Öffnen Sie die Definitionsdatei des Workflows in einem beliebigen Texteditor.
Fügen Sie das Feld
next
am Ende eines Schritts hinzu, um den Workflow anzuweisen, zu einem bestimmten Schritt zu springen:YAML
- step_a: ... next: STEP_NAME_TO_JUMP_TO - step_b: ... - next_step: ...
JSON
[ { "step_a": { ... "next": "STEP_NAME_TO_JUMP_TO" } } { "step_b": { ... } } { "next_step": { ... } } ]
Ersetzen Sie
STEP_NAME_TO_JUMP_TO
durch den Namen des Schritts, den der Workflow als Nächstes ausführen soll. Beispiel:next_step
.Speichern Sie die Workflow-Datei.
Geben Sie den folgenden Befehl ein, um den Workflow bereitzustellen:
gcloud workflows deploy WORKFLOW_NAME \ --source=WORKFLOW_FILE.YAML
Ersetzen Sie Folgendes:
WORKFLOW_NAME
: erforderlich. Der Name Ihres Workflows.WORKFLOW_FILE.YAML
: erforderlich. Die Quelldatei für den Workflow.
Beispiel
Die Schritte des folgenden Workflows sind beispielsweise in der falschen Reihenfolge:
YAML
- get_time: call: http.get args: url: https://us-central1-workflowsample.cloudfunctions.net/datetime result: currentTime - return_daylight_savings_bool: return: ${daylightSavings} - get_daylight_savings_bool: assign: - daylightSavings: ${currentTime.body.isDayLightSavingsTime}
JSON
[ { "get_time": { "call": "http.get", "args": { "url": "https://us-central1-workflowsample.cloudfunctions.net/datetime" }, "result": "currentTime" } }, { "return_daylight_savings_bool": { "return": "${daylightSavings}" } }, { "get_daylight_savings_bool": { "assign": [ { "daylightSavings": "${currentTime.body.isDayLightSavingsTime}" } ] } } ]
In diesem Beispiel wurden die Schritte next
zu den Schritten get_daylight_savings_bool
und return_daylight_savings_bool
hinzugefügt, sodass die Schritte in der richtigen Reihenfolge ausgeführt werden:
YAML
- get_time: call: http.get args: url: https://us-central1-workflowsample.cloudfunctions.net/datetime result: currentTime next: get_daylight_savings_bool - return_daylight_savings_bool: return: ${daylightSavings} - get_daylight_savings_bool: assign: - daylightSavings: ${currentTime.body.isDayLightSavingsTime} next: return_daylight_savings_bool
JSON
[ { "get_time": { "call": "http.get", "args": { "url": "https://us-central1-workflowsample.cloudfunctions.net/datetime" }, "result": "currentTime", "next": "get_daylight_savings_bool" } }, { "return_daylight_savings_bool": { "return": "${daylightSavings}" } }, { "get_daylight_savings_bool": { "assign": [ { "daylightSavings": "${currentTime.body.isDayLightSavingsTime}" } ], "next": "return_daylight_savings_bool" } } ]
Bedingte Jumps
Sie können bedingte Jumps verwenden, um zu bestimmen, welcher Schritt als Nächstes in einem Workflow ausgeführt wird.
Für bedingte Jumps werden switch
-Blöcke verwendet, die zu einem angegebenen Schritt springen, wenn eine bestimmte Bedingung erfüllt ist. Jeder switch
-Block kann maximal 50 Bedingungen enthalten.
Console
Öffnen Sie die Seite „Workflows“ in der Google Cloud Console:
Zu „Workflows“Wählen Sie den Namen des Workflows aus, dem Sie einen
switch
-Block hinzufügen möchten.Wählen Sie auf der Seite Workflow bearbeiten die Option Weiter aus, um zum Workflow-Editor zu wechseln.
Auf der Seite Workflow definieren wird die aktuelle Definition Ihres Workflows angezeigt. Fügen Sie einen Schritt mit einem
switch
-Block hinzu, um den Workflow so zu bearbeiten, dass er einen bestimmten Schritt basierend auf einer bedingten Anweisung ausführt:YAML
- SWITCH_STEP_NAME: switch: - condition: ${EXPRESSION_ONE} next: STEP_A - condition: ${EXPRESSION_TWO} next: STEP_B ... next: STEP_C - STEP_A ... - STEP_B ... - STEP_C ...
JSON
[ { "SWITCH_STEP_NAME": { "switch": [ { "condition": "${EXPRESSION_ONE}", "next": "STEP_A" }, { "condition": "${EXPRESSION_TWO}", "next": "STEP_B" } ], "next": "STEP_C" } "STEP_A": { ... } "STEP_B": { ... } "STEP_C": { ... } } ]
Ersetzen Sie Folgendes:
SWITCH_STEP_NAME
: der Name des Schritts, der denswitch
-Block enthält.EXPRESSION_ONE
: Der erste Ausdruck, der ausgewertet werden soll. Wenn dieser Ausdruck als „true“ ausgewertet wird, führt der Workflow als NächstesSTEP_A
aus. Wenn dieser Ausdruck false ergibt, wertet der Workflow den nächsten Ausdruck aus.EXPRESSION_TWO
: Der zweite Ausdruck, der ausgewertet werden soll. Wenn dieser Ausdruck als „true“ ausgewertet wird, führt der Workflow als NächstesSTEP_B
aus. Wenn dieser Ausdruck als „false“ ausgewertet wird, führt der WorkflowSTEP_C
aus.STEP_A
,STEP_B
,STEP_C
: Platzhalter für Schrittnamen.
Wählen Sie Bereitstellen.
gcloud
Öffnen Sie die Definition des Workflows in einem beliebigen Texteditor.
Fügen Sie einen Schritt mit einem
switch
-Block hinzu, um den Workflow so zu bearbeiten, dass er einen bestimmten Schritt basierend auf einer bedingten Anweisung ausführt:YAML
- SWITCH_STEP_NAME: switch: - condition: ${EXPRESSION_ONE} next: STEP_A - condition: ${EXPRESSION_TWO} next: STEP_B ... next: STEP_C - STEP_A ... - STEP_B ... - STEP_C ...
JSON
[ { "SWITCH_STEP_NAME": { "switch": [ { "condition": "${EXPRESSION_ONE}", "next": "STEP_A" }, { "condition": "${EXPRESSION_TWO}", "next": "STEP_B" } ], "next": "STEP_C" } "STEP_A": { ... } "STEP_B": { ... } "STEP_C": { ... } } ]
Ersetzen Sie Folgendes:
SWITCH_STEP_NAME
: der Name des Schritts, der denswitch
-Block enthält.EXPRESSION_ONE
: Der erste Ausdruck, der ausgewertet werden soll. Wenn dieser Ausdruck als „true“ ausgewertet wird, führt der Workflow als NächstesSTEP_A
aus. Wenn dieser Ausdruck false ergibt, wertet der Workflow den nächsten Ausdruck aus.EXPRESSION_TWO
: Der zweite Ausdruck, der ausgewertet werden soll. Wenn dieser Ausdruck als „true“ ausgewertet wird, führt der Workflow als NächstesSTEP_B
aus. Wenn dieser Ausdruck als „false“ ausgewertet wird, führt der WorkflowSTEP_C
aus.STEP_A
,STEP_B
,STEP_C
: Platzhalter für Schrittnamen.
Speichern Sie die Workflow-Datei.
Geben Sie den folgenden Befehl ein, um den Workflow bereitzustellen:
gcloud workflows deploy WORKFLOW_NAME \ --source=WORKFLOW_FILE.YAML
Ersetzen Sie Folgendes:
WORKFLOW_NAME
: erforderlich. Der Name Ihres Workflows.WORKFLOW_FILE.YAML
: erforderlich. Die Quelldatei für den Workflow.
Beispiel
Dieser Workflow verwendet beispielsweise einen Switch-Block, um die Reihenfolge der Workflows zu steuern:
YAML
- getCurrentTime: call: http.get args: url: https://us-central1-workflowsample.cloudfunctions.net/datetime result: currentTime - conditionalSwitch: switch: - condition: ${currentTime.body.dayOfTheWeek == "Friday"} next: friday - condition: ${currentTime.body.dayOfTheWeek == "Saturday" OR currentTime.body.dayOfTheWeek == "Sunday"} next: weekend next: workWeek - friday: return: "It's Friday! Almost the weekend!" - weekend: return: "It's the weekend!" - workWeek: return: "It's the work week."
JSON
[ { "getCurrentTime": { "call": "http.get", "args": { "url": "https://us-central1-workflowsample.cloudfunctions.net/datetime" }, "result": "currentTime" } }, { "conditionalSwitch": { "switch": [ { "condition": "${currentTime.body.dayOfTheWeek == "Friday"}", "next": "friday" }, { "condition": "${currentTime.body.dayOfTheWeek == "Saturday" OR currentTime.body.dayOfTheWeek == "Sunday"}", "next": "weekend" } ], "next": "workWeek" } }, { "friday": { "return": "It's Friday! Almost the weekend!" } }, { "weekend": { "return": "It's the weekend!" } }, { "workWeek": { "return": "It's the work week." } } ]
In diesem Beispiel hat der Block switch
zwei Bedingungen. Der Parser wertet jede Bedingung der Reihe nach aus. Wenn das Ergebnis des Ausdrucks der Bedingung true
lautet, wird der Schritt next
dieser Bedingung aufgerufen. Wenn keine der Bedingungen erfüllt ist, ruft der Workflow den Schritt auf, der im Feld next
außerhalb des Blocks switch
angegeben ist. In diesem Beispiel ist es der Schritt workWeek
.
Wenn der Wochentag beispielsweise "Saturday"
ist, springt der Workflow zum Schritt weekend
und gibt die Nachricht "It's the weekend!"
zurück. Der Workflow führt den Schritt friday
nicht aus, da der bedingte Jump diesen überspringt und der Workflow den Schritt workWeek
nicht ausführt, da return
die Ausführung des Workflows am Ende des weekend
-Schritts beendet.
Verwenden Sie for
-Schleifen zum Iterieren.
Sie können for
-Schleifen verwenden, um eine Sequenz von Zahlen oder eine Sammlung von Daten wie eine Liste oder Karte zu durchlaufen.
Sie können jedes Element einer Liste oder Karte mithilfe der elementbasierten Iteration durchlaufen. Wenn Sie einen bestimmten Bereich numerischer Werte durchlaufen möchten, können Sie die bereichsbasierte Iteration verwenden.
Weitere Informationen und Beispiele finden Sie in der Syntaxreferenz zur Iteration.