Starten eines Workflows innerhalb eines Workflows (Step Functions, Lambda) - 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 eines Workflows innerhalb eines Workflows (Step Functions, Lambda)

In diesem Beispielprojekt wird veranschaulicht, wie Sie einen AWS Step Functions-Zustandsautomaten verwenden, um andere Ausführungen des Zustandsautomaten zu starten. Siehe Starten von Workflow-Ausführungen über einen Aufgabenstatus.

Erstellen des Zustandsautomaten und Bereitstellen von Ressourcen

  1. Öffnen SieStep Functions -Konsoleund wähleErstellen eines Zustandsautomatenaus.

  2. Wählen Sie Sample Projects (Beispielprojekte) und dann Start a Workflow Within a Workflow (Einen Workflow innerhalb eines Workflows starten) aus.

    Der Code und der Visual Workflow des Zustandsautomaten werden angezeigt.

    
          Starten Sie einen Workflow.
  3. Wählen Sie Next (Weiter) aus.

    Die Seite Deploy resources (Ressourcen bereitstellen) wird angezeigt und listet die Ressourcen auf, die erstellt werden. Die Ressourcen für dieses Beispielprojekt:

    • Eine zusätzliche Zustandsautomaten Step Function

    • Eine Lambda-Funktion für Callback

  4. Wählen Sie Deploy Resources (Ressourcen bereitstellen) aus.

    Anmerkung

    Es kann bis zu 10 Minuten dauern, bis diese Ressourcen und dazugehörende IAM-Berechtigungen erstellt werden. Wenn die Seite Deploy resources (Ressourcen bereitstellen) anzeigt wird, können Sie den Link Stack ID (Stack-ID) öffnen, um zu sehen, welche Ressourcen bereitgestellt werden.

Starten einer neuen Ausführung

  1. Geben Sie auf der Seite New execution (Neue Ausführung) einen Namen für die Ausführung (optional) ein und wählen Sie Start Execution (Ausführung starten).

  2. (Optional) Um Ihre Ausführung zu identifizieren, können Sie imNameaus. Standardmäßig generiert Step Functions automatisch einen eindeutigen Ausführungsnamen.

    Anmerkung

    Mit Step Functions können Sie Statuscomputer-, Ausführungs- und Aktivitätsnamen erstellen, die Nicht-ASCII-Zeichen enthalten. Diese Nicht-ASCII-Namen funktionieren nicht mit AmazonCloudWatchaus. Um sicherzustellen, dass Sie nachverfolgen könnenCloudWatchMetriken, wählen Sie einen Namen, der nur ASCII-Zeichen verwendet.

  3. Optional können Sie auf den Step Functions zum neu erstellten Zustandsautomaten wechselnDashboardKlicken Sie auf und danach aufNeue Ausführungaus.

  4. Wenn eine Ausführung abgeschlossen ist, können Sie Zustandsstände aufVisueller WorkflowUnd stöbern SieEingabeundAusgabeunterSchritt-Detailsaus.

Code des Zustandsautomaten aus diesem Beispiel

Der Zustandsautomat in diesem Beispielprojekt integriert einen anderen Zustandsautomaten und AWS Lambda, indem Parameter direkt an diese Ressourcen übergeben werden.

Durchsuchen Sie diesen Beispiel-Zustandsautomaten, um zu sehen, wie Step Functions-StartExecutionAPI-Aktion für den anderen Zustandsmaschine. Es startet zwei Instances des anderen Zustandsautomaten parallel: eine mit dem Muster Ausführen einer Aufgabe (.sync) und eine mit dem Muster Warten auf einen Callback mit dem Aufgabentoken.

Weitere Informationen darüber, wie AWS Step Functions andere AWS-Services steuern kann, finden Sie unter Verwenden von AWS Step Functions mit sonstigen Services.

{ "Comment": "An example of combining workflows using a Step Functions StartExecution task state with various integration patterns.", "StartAt": "Start new workflow and continue", "States": { "Start new workflow and continue": { "Comment": "Start an execution of another Step Functions state machine and continue", "Type": "Task", "Resource": "arn:aws:states:::states:startExecution", "Parameters": { "StateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:NestingPatternAnotherStateMachine-HZ9gtgspmdun", "Input": { "NeedCallback": false, "AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id" } }, "Next": "Start in parallel" }, "Start in parallel": { "Comment": "Start two executions of the same state machine in parallel", "Type": "Parallel", "End": true, "Branches": [ { "StartAt": "Start new workflow and wait for completion", "States": { "Start new workflow and wait for completion": { "Comment": "Start an execution of the same 'NestingPatternAnotherStateMachine' and wait for its completion", "Type": "Task", "Resource": "arn:aws:states:::states:startExecution.sync", "Parameters": { "StateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:NestingPatternAnotherStateMachine-HZ9gtgspmdun", "Input": { "NeedCallback": false, "AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id" } }, "OutputPath": "$.Output", "End": true } } }, { "StartAt": "Start new workflow and wait for callback", "States": { "Start new workflow and wait for callback": { "Comment": "Start an execution and wait for it to call back with a task token", "Type": "Task", "Resource": "arn:aws:states:::states:startExecution.waitForTaskToken", "Parameters": { "StateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:NestingPatternAnotherStateMachine-HZ9gtgspmdun", "Input": { "NeedCallback": true, "AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id", "TaskToken.$": "$$.Task.Token" } }, "End": true } } } ] } } }

Weitere Informationen zum Konfigurieren von IAM bei Verwendung von Step Functions mit anderenAWSDienstleistungen, sieheIAM-Richtlinien für integrierte Diensteaus.