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
-
Öffnen Sie die Step Functions Functions-Konsole
und wählen Sie Create State Machine. -
Wählen Sie im Dialogfeld Vorlage auswählen die Option Leer aus.
-
Wählen Sie „Auswählen“, um Workflow Studio in zu öffnenEntwurfsmodus.
-
Ziehen Sie die StartExecutionAPI-Aktion von der Registerkarte Aktionen in den leeren Status mit der Bezeichnung Drag First state here.
-
Wählen Sie den StartExecutionStatus aus und gehen Sie auf der Registerkarte Konfiguration unter wie folgt vorEntwurfsmodus:
-
Benennen Sie den Status um in
Start nested execution
. -
Wählen Sie als Integrationstyp die Option AWS SDK — neu aus der Dropdownliste aus.
-
Gehen Sie unter API-Parameter wie folgt vor:
-
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. -
Ersetzen Sie für
Input
Node den vorhandenen Platzhaltertext durch den folgenden Wert:"Comment": "Starting workflow execution using a Step Functions API action"
-
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" }
-
-
-
(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.
-
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. -
(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.
-
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.
-
Wählen Sie auf der ParentStateMachineSeite die IAM-Rolle ARN aus, um zur Seite mit den IAM-Rollen für Ihren Zustandsmaschine zu navigieren.
-
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:
-
Wählen Sie auf der Seite „IAM-Rollen“ die Option Berechtigungen hinzufügen und dann Inline-Richtlinie erstellen aus.
-
Wählen Sie auf der Seite Richtlinie erstellen die Registerkarte JSON aus.
-
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
" ] } ] } -
Wählen Sie Richtlinie prüfen.
-
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.
-
Wählen Sie auf der ParentStateMachineSeite Ausführung starten aus.
Das Dialogfeld Ausführung starten wird angezeigt.
-
Gehen Sie im Dialogfeld Ausführung starten wie folgt vor:
-
(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
-
(Optional) Geben Sie im Eingabefeld Eingabewerte im JSON-Format ein, um Ihren Workflow auszuführen.
-
Wählen Sie Start execution (Ausführung starten) aus.
-
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.
-
-
Öffnen Sie die LambdaStateMachineSeite und stellen Sie fest, dass eine neue Ausführung durch den ausgelöst wurde ParentStateMachine.