Starten von Workflow-Ausführungen über einen Aufgabenstatus - 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 von Workflow-Ausführungen über einen Aufgabenstatus

AWS Step Functions kann Workflow-Ausführungen aus einem Task-Zustand eines Zustandsautomaten 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 seine eigene API als integrierten Dienst aufruft. Rufen Sie einfach die StartExecution-API-Aktion aus Ihrem Task-Status auf und übergeben Sie die erforderlichen Parameter. Sie können die Step Functions API mithilfe eines beliebigen Dienstintegrationsmusters aufrufen.

Tipp

Ein Beispiel für einen verschachtelten Workflow finden Sie AWS-Konto in Modul 13 — Verschachtelte Express-Workflows.

Um eine neue Ausführung einer State-Maschine 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 des HelloWorld-Zustandsautomaten 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 vorhanden, enthält diese Verknüpfung Links im Abschnitt mit den Schrittdetails der Step Functions-Konsole. 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: