Starte ein neues AWS Step Functions Zustandsmaschine aus einer laufenden Ausführung - 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.

Starte ein neues AWS Step Functions Zustandsmaschine aus einer laufenden Ausführung

Step Functions lässt sich in seine eigene API As-a-Service-Integration integrieren. Erfahren Sie, wie Sie Step Functions verwenden, um eine neue Ausführung einer Zustandsmaschine direkt aus dem Aufgabenstatus einer laufenden Ausführung heraus zu starten. Verwenden Sie beim Erstellen neuer Workflows verschachtelte Workflow-Ausführungen, um die Komplexität Ihrer Haupt-Workflows zu reduzieren und gängige Prozesse wiederzuverwenden.

Hauptmerkmale der Integration von Optimized Step Functions

Beachten Sie, dass es keine Optimierungen für die Request Response (Antwort anfordern) Warten Sie auf einen Rückruf mit Task Token Integrationsmuster gibt.

Weitere Informationen finden Sie hier:

Unterstützte Step Functions APIs

Workflow-Beispiele

Das folgende Beispiel enthält einen Task-Status, der die Ausführung eines anderen Zustandsautomaten startet und wartet, bis sie abgeschlossen ist.

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution.sync:2", "Parameters":{ "Input":{ "Comment": "Hello world!" }, "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Name":"ExecutionName" }, "End":true }

Das folgende Beispiel enthält einen Task-Status, der die Ausführung eines anderen Zustandsautomaten startet.

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

Das Folgende enthält einen Task-Zustand zur Implementierung des Callback- Service-Integrationsmusters.

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution.waitForTaskToken", "Parameters":{ "Input":{ "Comment": "Hello world!", "token.$": "$$.Task.Token" }, "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Name":"ExecutionName" }, "End":true }

Um eine verschachtelte Workflow-Ausführung mit der übergeordneten Ausführung zu verknüpfen, von der sie gestartet wurde, übergeben Sie einen speziell benannten Parameter, der die Ausführungs-ID enthält, die aus dem Context-Objekt abgerufen wurde. Wenn Sie eine verschachtelte Ausführung starten, verwenden Sie einen Parameter namens AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID. Ü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. Weitere Informationen finden Sie unter Zugriff auf das Kontext-Objekt.

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

Verschachtelte Zustandsautomaten geben Folgendes zurück:

Ressource Output
startExecution.sync String
startExecution.sync: 2 JSON

Beide warten, bis der verschachtelte Zustandsautomat fertig ist, aber sie geben verschiedene Output-Formate zurück. Wenn Sie beispielsweise eine Lambda-Funktion erstellen, die das Objekt zurückgibt{ "MyKey": "MyValue" }, würden Sie die folgenden Antworten erhalten:

Für startExecution .sync:

{ <other fields> "Output": "{ \"MyKey\": \"MyValue\" }" }

Für startExecution .sync:2:

{ <other fields> "Output": { "MyKey": "MyValue" } }

IAMBerechtigungen für verschachtelte Zustandsmaschinen konfigurieren

Ein übergeordneter Zustandsmaschine bestimmt anhand von Abfragen und Ereignissen, ob ein untergeordneter Zustandsmaschine die Ausführung abgeschlossen hat. Für Abfragen ist eine Genehmigung erforderlich, states:DescribeExecution während für Ereignisse, die EventBridge an Step Functions gesendet werden, Berechtigungen für events:PutTargetsevents:PutRule, und events:DescribeRule erforderlich sind. Wenn diese Berechtigungen in Ihrer IAM Rolle fehlen, kann es zu einer Verzögerung kommen, bis ein übergeordneter Zustandsmaschine erfährt, dass die Ausführung des untergeordneten Zustandsmaschinen abgeschlossen ist.

Verwenden Sie für einen Zustandsmaschine, der die Ausführung eines einzelnen verschachtelten Workflows erfordertStartExecution, eine IAM Richtlinie, die die Berechtigungen auf diesen Zustandsmaschine beschränkt.

Weitere Informationen finden Sie unter IAMBerechtigungen für Step Functions.

IAMRichtlinien für den Aufruf verschachtelter Step Functions Functions-Workflows

Verwenden Sie für einen Zustandsmaschine, der die Ausführung eines einzelnen verschachtelten Workflows erfordertStartExecution, eine IAM Richtlinie, die die Berechtigungen auf diesen Zustandsmaschine beschränkt.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:[[region]]:[[accountId]]:stateMachine:[[stateMachineName]]" ] } ] }

Weitere Informationen finden Sie hier:

Synchronous
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:[[region]]:[[accountId]]:stateMachine:[[stateMachineName]]" ] }, { "Effect": "Allow", "Action": [ "states:DescribeExecution", "states:StopExecution" ], "Resource": [ "arn:aws:states:[[region]]:[[accountId]]:execution:[[stateMachineName]]:*" ] }, { "Effect": "Allow", "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:[[region]]:[[accountId]]:rule/StepFunctionsGetEventsForStepFunctionsExecutionRule" ] } ] }
Asynchronous
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:[[region]]:[[accountId]]:stateMachine:[[stateMachineName]]" ] } ] }

Weitere Informationen zu verschachtelten Workflow-Ausführungen finden Sie unter Starten Sie Workflow-Ausführungen von einem Aufgabenstatus aus in Step Functions.