Verwenden einer Step Functions Functions-API-Aktion, um eine neue Ausführung fortzusetzen (empfohlen) - 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.

Verwenden einer Step Functions Functions-API-Aktion, um eine neue Ausführung fortzusetzen (empfohlen)

Step Functions kann Workflow-Ausführungen starten, indem es seine eigene API als integrierten Dienst aufruft. Wir empfehlen Ihnen, diesen Ansatz zu verwenden, um zu vermeiden, dass die Servicekontingenten bei Ausführungen mit langer Laufzeit überschritten werden.

Schritt 1: Erstellen Sie einen State Machine mit langer Laufzeit

Erstellen Sie eine Zustandsmaschine mit langer Laufzeit, die Sie vom Task Status einer anderen Zustandsmaschine aus starten möchten. Verwenden Sie für dieses Tutorial die Zustandsmaschine, die eine Lambda-Funktion verwendet.

Anmerkung

Stellen Sie sicher, dass Sie den Namen und den Amazon-Ressourcennamen dieses Zustandsmaschinen zur späteren Verwendung in eine Textdatei kopieren.

Schritt 2: Erstellen Sie eine Zustandsmaschine, um die Step Functions Functions-API-Aktion aufzurufen

Um Workflow-Ausführungen von einem Task Status aus zu starten
  1. Öffnen Sie die Step Functions Functions-Konsole und wählen Sie Create State Machine.

  2. Wählen Sie im Dialogfeld Vorlage auswählen die Option Leer aus.

  3. Wählen Sie Select (Auswählen). Dadurch wird Workflow Studio in geöffnetEntwurfsmodus.

  4. Ziehen Sie die StartExecutionAPI-Aktion von der Registerkarte Aktionen in den leeren Status mit der Bezeichnung Drag First state here.

  5. Wählen Sie den StartExecutionStatus aus und gehen Sie auf der Registerkarte Konfiguration unter wie folgt vorEntwurfsmodus:

    1. Benennen Sie den Status um inStart nested execution.

    2. Wählen Sie als Integrationstyp die Option AWS SDK — neu aus der Dropdownliste aus.

    3. Gehen Sie unter API-Parameter wie folgt vor:

      1. Ersetzen Sie das StateMachineArn Beispiel für den Amazon-Ressourcennamen durch den ARN Ihres Zustandsmaschinen. Geben Sie beispielsweise den ARN der Zustandsmaschine ein, die Lambda verwendet.

      2. Ersetzen Sie für Input Node den vorhandenen Platzhaltertext durch den folgenden Wert:

        "Comment": "Starting workflow execution using a Step Functions API action"
      3. Stellen Sie sicher, dass Ihre Eingaben in API-Parametern wie folgt aussehen:

        { "StateMachineArn": "arn:aws:states:us-east-2:123456789012:stateMachine:LambdaStateMachine", "Input": { "Comment": "Starting workflow execution using a Step Functions API action", "AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id" }
  6. (Optional) Wählen Sie im Inspector Fenster Definition aus, um die automatisch generierte Amazon States Language (ASL) Definition Ihres Workflows anzuzeigen.

    Tipp

    Sie können die ASL-Definition auch im Workflow Studio anzeigen. Code-Editor Im Code-Editor können Sie auch die ASL-Definition Ihres Workflows bearbeiten.

  7. Geben Sie einen Namen für Ihre Zustandsmaschine an. Wählen Sie dazu das Bearbeitungssymbol neben dem Standardnamen der Zustandsmaschine von MyStateMachine. Geben Sie dann unter State-Machine-Konfiguration einen Namen in das Feld State-Machine-Name ein.

    Geben Sie für dieses Tutorial den Namen ParentStateMachine ein.

  8. (Optional) Geben Sie unter State-Machine-Konfiguration weitere Workflow-Einstellungen an, z. B. den Zustandsmaschinentyp und seine Ausführungsrolle.

    Behalten Sie für dieses Tutorial alle Standardauswahlen in den State-Machine-Einstellungen bei.

    Wenn Sie zuvor eine IAM-Rolle mit den richtigen Berechtigungen für Ihren Zustandsmaschine erstellt haben und diese verwenden möchten, wählen Sie unter Berechtigungen die Option Vorhandene Rolle auswählen und dann eine Rolle aus der Liste aus. Oder wählen Sie Einen Rollen-ARN eingeben aus und geben Sie dann einen ARN für diese IAM-Rolle ein.

  9. Wählen Sie im Dialogfeld „Rollenerstellung bestätigen“ die Option Bestätigen aus, um fortzufahren.

    Sie können auch Rolleneinstellungen anzeigen wählen, um zur State-Machine-Konfiguration zurückzukehren.

    Anmerkung

    Wenn Sie die von Step Functions erstellte IAM-Rolle löschen, kann Step Functions sie später nicht mehr neu erstellen. Ebenso kann Step Functions ihre ursprünglichen Einstellungen später nicht wiederherstellen, wenn Sie die Rolle ändern (z. B. indem Sie Step Functions aus den Principals in der IAM-Richtlinie entfernen).

Schritt 3: Aktualisieren Sie die IAM-Richtlinie

Um sicherzustellen, dass Ihre Zustandsmaschine berechtigt ist, die Ausführung der Zustandsmaschine zu starten, die eine Lambda-Funktion verwendet, müssen Sie der IAM-Rolle Ihrer Zustandsmaschine eine Inline-Richtlinie anhängen. Weitere Informationen finden Sie unter Einbetten von Inline-Richtlinien im IAM-Benutzerhandbuch.

  1. Wählen Sie auf der ParentStateMachineSeite die IAM-Rolle ARN aus, um zur Seite mit den IAM-Rollen für Ihren Zustandsmaschine zu navigieren.

  2. Weisen Sie der IAM-Rolle von eine entsprechende Berechtigung zu, ParentStateMachinedamit sie die Ausführung einer anderen Zustandsmaschine starten kann. Gehen Sie wie folgt vor, um die Berechtigung zuzuweisen:

    1. Wählen Sie auf der Seite „IAM-Rollen“ die Option Berechtigungen hinzufügen und dann Inline-Richtlinie erstellen aus.

    2. Wählen Sie auf der Seite Richtlinie erstellen die Registerkarte JSON aus.

    3. Ersetzen Sie den vorhandenen Text durch die folgende Richtlinie.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:us-east-2:123456789012:stateMachine:LambdaStateMachine" ] } ] }
    4. Wählen Sie Richtlinie prüfen.

    5. Geben Sie einen Namen für die Richtlinie an, und wählen Sie dann Richtlinie erstellen aus.

Schritt 4: Führen Sie die Zustandsmaschine aus

State-Machine-Ausführungen sind Instanzen, in denen Sie Ihren Workflow ausführen, um Aufgaben auszuführen.

  1. Wählen Sie auf der ParentStateMachineSeite Ausführung starten aus.

    Das Dialogfeld Ausführung starten wird angezeigt.

  2. Gehen Sie im Dialogfeld Ausführung starten wie folgt vor:

    1. (Optional) Um Ihre Ausführung zu identifizieren, können Sie im Feld Name einen Namen dafür angeben. Standardmäßig generiert Step Functions automatisch einen eindeutigen Ausführungsnamen.

      Anmerkung

      Mit Step Functions können Sie Namen für Zustandsmaschinen, Ausführungen und Aktivitäten sowie Beschriftungen erstellen, die Nicht-ASCII-Zeichen enthalten. Diese Nicht-ASCII-Namen funktionieren nicht mit Amazon. CloudWatch Um sicherzustellen, dass Sie CloudWatch Messwerte verfolgen können, wählen Sie einen Namen, der nur ASCII-Zeichen verwendet.

    2. (Optional) Geben Sie in das Eingabefeld Eingabewerte im JSON-Format ein, um Ihren Workflow auszuführen.

    3. Wählen Sie Start execution (Ausführung starten) aus.

    4. Die Step Functions Functions-Konsole leitet Sie zu einer Seite weiter, die mit Ihrer Ausführungs-ID betitelt ist. Diese Seite wird als Seite mit den Ausführungsdetails bezeichnet. Auf dieser Seite können Sie die Ausführungsergebnisse im Verlauf der Ausführung oder nach deren Abschluss überprüfen.

      Um die Ausführungsergebnisse zu überprüfen, wählen Sie in der Diagrammansicht einzelne Status aus und wählen Sie dann die einzelnen Registerkarten im Schrittdetails Bereich, um die Details der einzelnen Status, einschließlich Eingabe, Ausgabe und Definition, anzuzeigen. Einzelheiten zu den Ausführungsinformationen, die Sie auf der Seite mit den Ausführungsdetails einsehen können, finden Sie unterSeite mit Ausführungsdetails – Schnittstellenübersicht.

  3. Öffnen Sie die LambdaStateMachineSeite und stellen Sie fest, dass eine neue Ausführung durch den ausgelöst wurde ParentStateMachine.