Setzen Sie lang andauernde Workflows mit der Step Functions API fort (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.

Setzen Sie lang andauernde Workflows mit der Step Functions API fort (empfohlen)

AWS Step Functions ist für die Ausführung von Workflows mit einer begrenzten Dauer und Anzahl von Schritten konzipiert. Standard-Workflow-Ausführungen haben eine maximale Dauer von einem Jahr und 25.000 Ereignissen (siehe). Step Functions Servicequotas

Bei Ausführungen mit langer Laufzeit können Sie verhindern, dass das feste Kontingent erreicht wird, indem Sie eine neue Workflow-Ausführung vom Status aus starten. Task Sie müssen Ihre Workflows in kleinere Zustandsmaschinen aufteilen, die die laufende Arbeit in einer neuen Ausführung fortsetzen.

Um neue Workflow-Ausführungen zu starten, rufen Sie die StartExecution API-Aktion von Ihrem Task Bundesstaat aus auf und übergeben die erforderlichen Parameter.

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 eine Zustandsmaschine 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 „Auswählen“, um Workflow Studio in zu öffnenEntwurfsmodus.

  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 den 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 Inspektor-Panel Bedienfeld „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. Legen Sie einen Namen für die Richtlinie fest und wählen Sie dann Create policy (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) Geben Sie einen benutzerdefinierten Ausführungsnamen ein, um den generierten Standard zu überschreiben.

      Nicht-ASCII-Namen und Protokollierung

      Step Functions akzeptiert Namen für Zustandsmaschinen, Ausführungen, Aktivitäten und Beschriftungen, die Nicht-ASCII-Zeichen enthalten. Da solche Zeichen mit Amazon nicht funktionieren, empfehlen wir CloudWatch, nur ASCII-Zeichen zu verwenden, damit Sie die Messwerte verfolgen können. CloudWatch

    2. (Optional) Geben Sie im 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 Einzelheiten zu den Schritten 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 unterÜberblick über die Ausführungsdetails.

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