Starten Sie Workflow-Ausführungen von einem Aufgabenstatus aus in Step Functions - AWS Step Functions

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Starten Sie Workflow-Ausführungen von einem Aufgabenstatus aus in Step Functions

AWS Step Functions kann Workflow-Ausführungen direkt vom Task Status einer Zustandsmaschine aus starten. Auf diese Weise können Sie Ihre Workflows in kleinere Zustandsautomaten aufteilen und Ausführungen dieser anderen Zustandsautomaten starten. Durch das Starten dieser neuen Workflow-Ausführungen haben Sie folgenden Möglichkeiten:

  • Trennen Sie den Workflow auf höherer Ebene von aufgabenspezifischen Workflows auf unterer Ebene.

  • Vermeiden Sie sich wiederholende Elemente. Rufen Sie nicht mehrfach einen separaten Zustandsautomaten auf.

  • Erstellen Sie eine Bibliothek mit modularen wiederverwendbaren Workflows für eine schnellere Entwicklung.

  • Reduzieren Sie die Komplexität und vereinfachen Sie die Bearbeitung und Fehlerbehebung von Zustandsautomaten.

Step Functions kann diese Workflow-Ausführungen starten, indem es seinen eigenen API als integrierten Dienst aufruft. Rufen Sie die StartExecution API Aktion einfach von Ihrem Task Bundesstaat aus auf und übergeben Sie die erforderlichen Parameter. Sie können die Step Functions API mit jedem der Service-Integrationsmuster aufrufen.

Tipp

Um ein Beispiel für einen verschachtelten Workflow auf Ihrem bereitzustellen AWS-Konto, siehe Modul 13 — Verschachtelte Express-Workflows.

Um eine neue Ausführung einer Zustandsmaschine zu starten, verwenden Sie einen Task Zustand, der dem folgenden Beispiel ähnelt:

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution", "Parameters":{ "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Input":{ "Comment":"Hello world!" }, }, "Retry":[ { "ErrorEquals":[ "StepFunctions.ExecutionLimitExceeded" ] } ], "End":true }

Dieser Task Status startet eine neue Ausführung der HelloWorld Zustandsmaschine und übergibt den JSON Kommentar als Eingabe.

Anmerkung

Die StartExecution API Aktionskontingente können die Anzahl der Ausführungen begrenzen, die Sie starten können. Verwenden Sie die Retry für StepFunctions.ExecutionLimitExceeded, um sicherzustellen, dass Ihre Ausführung gestartet wird. Siehe unten.

Zuordnen von Workflow-Ausführungen

Um eine gestartete Workflow-Ausführung mit der Ausführung zu verknüpfen, durch die sie gestartet wurde, übergeben Sie die Ausführungs-ID aus dem Context-Objekt an die Ausführungseingabe. Sie können aus Ihrem Task-Status in einer laufenden Ausführung auf die ID aus dem Context-Objekt zugreifen. Übergeben Sie die Ausführungs-ID, indem Sie .$ an den Parameternamen anhängen und mit $$.Execution.Id auf die ID im Context-Objekt mit verweisen.

"AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id"

Sie können einen speziellen Parameter namens AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID verwenden, wenn Sie eine Ausführung starten. Falls enthalten, stellt diese Verknüpfung Links im Abschnitt mit den Schrittdetails der Step Functions-Konsole bereit. Sofern bereitgestellt, können Sie problemlos die Ausführungen Ihrer Workflows verfolgen, vom Starten von Ausführungen bis zu den gestarteten Workflow-Ausführungen. Verknüpfen Sie im vorherigen Beispiel die Ausführungs-ID wie folgt mit der gestarteten Ausführung des HelloWorld-Zustandsautomaten.

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution", "Parameters":{ "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Input": { "Comment": "Hello world!", "AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id" } }, "End":true }

Weitere Informationen finden Sie hier: