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.
Redriving Map-Runs in Step Functions Functions-Ausführungen
Sie können erfolglose untergeordnete Workflow-Ausführungen in einer Map Run von neu starten redrivingIhr übergeordneter Workflow. A redriven übergeordneter Arbeitsablauf redrives alle erfolglosen Staaten, einschließlich Distributed Map. Ein übergeordneter Workflow gibt den Status „Nicht erfolgreich“ wieder aus, wenn es kein <stateType>Exited
Ereignis gibt, das dem <stateType>Entered
Ereignis für einen Status entspricht, in dem der übergeordnete Workflow seine Ausführung abgeschlossen hat. Wenn der Ereignisverlauf beispielsweise das Ereignis für ein MapStateExited
MapStateEntered
Ereignis nicht enthält, können Sie redrive der übergeordnete Workflow zu redrive alle erfolglosen untergeordneten Workflow-Ausführungen im Map Run.
Ein Map Run wird entweder nicht gestartet oder schlägt beim ursprünglichen Ausführungsversuch fehl, wenn der Zustandsmaschine nicht über die erforderlichen Zugriffsberechtigungen für den ItemReader (Karte) Zugriff auf oder beides verfügt. ResultWriter (Karte) Wenn der Map Run beim ursprünglichen Ausführungsversuch des übergeordneten Workflows nicht gestartet wurde, redriving der übergeordnete Workflow startet den Map Run zum ersten Mal. Um dieses Problem zu lösen, fügen Sie Ihrer State-Machine-Rolle die erforderlichen Berechtigungen hinzu und dann redrive der übergeordnete Workflow. Wenn Sie redrive Der übergeordnete Workflow versucht, ohne die erforderlichen Berechtigungen hinzuzufügen, einen neuen Map Run-Lauf zu starten, der erneut fehlschlägt. Informationen zu den Berechtigungen, die Sie möglicherweise benötigen, finden Sie unterIAMRichtlinien für die Verwendung von Distributed-Map-Zuständen.
Themen
Redrive Eignung für untergeordnete Workflows in einem Map Run
Das können Sie redrive die erfolglosen untergeordneten Workflow-Ausführungen in einem Map Run, wenn die folgenden Bedingungen erfüllt sind:
-
Sie haben am oder nach dem 15. November 2023 mit der Ausführung des übergeordneten Workflows begonnen. Ausführungen, die Sie vor diesem Datum gestartet haben, kommen nicht in Frage redrive.
-
Sie haben das feste Limit von 1000 nicht überschritten redrives eines bestimmten Map Runs. Wenn du dieses Limit überschritten hast, erhältst du die
States.Runtime
Fehlermeldung. -
Der übergeordnete Workflow ist redrivable. Wenn der übergeordnete Workflow nicht redrivable, kannst du nicht redrive die untergeordneten Workflow-Ausführungen in einem Map Run. Weitere Informationen zur redrive Eignung eines Workflows, siehe. Redrive Eignung für erfolglose Hinrichtungen
-
Die untergeordneten Workflow-Ausführungen des Typs Standard in Ihrem Map Run haben das Limit von 25.000 Ausführungsereignissen im Verlauf nicht überschritten. Untergeordnete Workflow-Ausführungen, die das Limit für den Ereignisverlauf überschritten haben, werden auf den Schwellenwert für tolerierte Fehler angerechnet und als fehlgeschlagen betrachtet. Für weitere Informationen über redrive Zulässigkeit einer Hinrichtung finden Sie unterRedrive Eignung für erfolglose Hinrichtungen.
Ein neuer Map Run wird gestartet und der bestehende Map Run nicht redriven in den folgenden Fällen, auch wenn der Map Run beim ursprünglichen Ausführungsversuch fehlgeschlagen ist:
-
Map Run ist aufgrund des
States.DataLimitExceeded
Fehlers fehlgeschlagen. -
Map Run ist aufgrund des JSON Dateninterpolationsfehlers fehlgeschlagen,.
States.Runtime
Sie haben beispielsweise einen nicht existierenden JSON Knoten in ausgewählt. Filtern der Statusausgabe mithilfe von Workflows OutputPath in Step Functions
Ein Map-Run kann auch dann weiter ausgeführt werden, wenn der übergeordnete Workflow beendet oder das Timeout überschritten wurde. In diesen Szenarien ist redrive passiert nicht sofort:
-
Map Run storniert möglicherweise immer noch laufende untergeordnete Workflow-Ausführungen vom Typ Standard oder wartet darauf, dass untergeordnete Workflow-Ausführungen vom Typ Express ihre Ausführungen abgeschlossen haben.
-
Map Run schreibt möglicherweise immer noch Ergebnisse in dasResultWriter (Karte), wenn Sie es für den Export von Ergebnissen konfiguriert haben.
In diesen Fällen schließt der laufende Map Run seine Operationen ab, bevor er versucht redrive.
Ausführung eines untergeordneten Workflows redrive Verhalten
Das Tool redriven Die Ausführung untergeordneter Workflows in einem Map Run zeigt das in der folgenden Tabelle beschriebene Verhalten.
Untergeordneter Express-Arbeitsablauf | Standardmäßiger Arbeitsablauf für Kinder |
---|---|
Alle untergeordneten Workflow-Ausführungen, die beim ursprünglichen Ausführungsversuch fehlgeschlagen sind oder deren Timeout überschritten wurde, werden mithilfe der StartExecutionAPIAktion gestartet. Der erste Status in ItemProcessor ist „Run first“. | Alle untergeordneten Workflow-Ausführungen, bei denen beim ursprünglichen Ausführungsversuch ein Fehler aufgetreten ist, die Zeitüberschreitung überschritten wurde oder die abgebrochen wurden, sind redriven unter Verwendung des RedriveExecutionAPIAktion. Diese untergeordneten Workflows sind redriven aus dem letzten Zustand ItemProcessor , der zu ihrer erfolglosen Ausführung geführt hat. |
Erfolglose Ausführungen können immer redriven. Dies liegt daran, dass untergeordnete Express-Workflow-Ausführungen immer als neue Ausführung mithilfe der StartExecution API Aktion gestartet werden. |
Nicht immer können untergeordnete Standard-Workflow-Ausführungen erfolglos sein redriven. Wenn eine Hinrichtung nicht erfolgt redrivable, es wird nicht noch einmal versucht. Der letzte Fehler oder die letzte Ausgabe der Ausführung ist dauerhaft. Dies ist möglich, wenn eine Ausführung mehr als 25.000 historische Ereignisse umfasst, oder redrivable Die Frist von 14 Tagen ist abgelaufen. Die Ausführung eines standardmäßigen untergeordneten Workflows ist möglicherweise nicht möglich redrivable wenn die Ausführung des übergeordneten Workflows innerhalb von 14 Tagen abgeschlossen wurde, die Ausführung des untergeordneten Workflows jedoch vor 14 Tagen. |
Für untergeordnete Express-Workflow-Ausführungen wird dieselbe Ausführung verwendet ARN wie für den ursprünglichen Ausführungsversuch, aber Sie können die einzelnen Workflow-Ausführungen nicht eindeutig identifizieren redrives. | Standardausführungen untergeordneter Workflows verwenden dieselbe Ausführung ARN wie der ursprüngliche Ausführungsversuch. Sie können die Person eindeutig identifizieren redrives in der Konsole und mithilfe von APIs z. B. GetExecutionHistoryund DescribeExecution. Weitere Informationen finden Sie unter Untersuchen redriven Hinrichtungen. |
Wenn du redriven bei einem Map Run, dessen Parallelitätslimit erreicht ist, wird der untergeordnete Workflow, der in diesem Map Run ausgeführt wird, in den Status „Ausstehend“ übergehen. Der Ausführungsstatus des Map Runs geht ebenfalls in den Status Ausstehend über redriveZustand. Bis das angegebene Parallelitätslimit die Ausführung weiterer untergeordneter Workflow-Ausführungen ermöglicht, verbleibt die Ausführung im Status Ausstehend redriveZustand.
Nehmen wir beispielsweise an, dass das Parallelitätslimit für die verteilte Map in Ihrem Workflow 3000 beträgt und die Anzahl der erneut auszuführenden untergeordneten Workflows 6000 beträgt. Dies führt dazu, dass 3000 untergeordnete Workflows parallel ausgeführt werden, während die verbleibenden 3000 Workflows im Status Pending Redrive verbleiben. Nachdem die Ausführung des ersten Batches von 3000 untergeordneten Workflows abgeschlossen ist, werden die verbleibenden 3000 untergeordneten Workflows ausgeführt.
Wenn die Ausführung eines Map Runs abgeschlossen oder abgebrochen wurde, wird die Anzahl der Ausführungen untergeordneter Workflows im Status Ausstehend angezeigt redriveDer Status wird auf 0 zurückgesetzt.
Bei Map Run verwendete Eingabeszenarien redrive
Je nachdem, wie Sie beim ursprünglichen Ausführungsversuch Eingaben für die Distributed Map bereitgestellt haben, ist redriven Map Run verwendet die Eingabe wie in der folgenden Tabelle beschrieben.
Eingabe beim ursprünglichen Ausführungsversuch | Die Eingabe wurde bei Map Run verwendet redrive |
---|---|
Eingabe, die aus einem vorherigen Status oder der Ausführungseingabe übergeben wurde. | Das Tool redriven Map Run verwendet dieselbe Eingabe. |
Die Eingabe wurde mit übergeben ItemReader (Karte) und der Map Run hat die Ausführung des untergeordneten Workflows nicht gestartet, da eine der folgenden Bedingungen zutrifft:
|
Das Tool redriven Map Run verwendet die Eingabe im Amazon S3 S3-Bucket. |
Die Eingabe wurde mit übergeben ItemReader. Der Map Run schlug fehl, nachdem untergeordnete Workflow-Ausführungen gestartet oder versucht wurden, sie zu starten. | Das Tool redriven Map Run verwendet dieselbe Eingabe wie beim ursprünglichen Ausführungsversuch. |
IAMErlaubnis zu redrive ein Map Run
Step Functions benötigt die entsprechende Genehmigung für redrive ein Map Run. Das folgende IAM Richtlinienbeispiel gewährt Ihrem Zustandsmaschine die geringste erforderliche Berechtigung für redriving ein Map Run. Denken Sie daran, das zu ersetzen italicized
Text mit Ihren ressourcenspezifischen Informationen.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:RedriveExecution" ], "Resource": "arn:aws:states:us-east-2:
123456789012
:execution:myStateMachine
/myMapRunLabel
:*" } ] }
Redriving Karte In der Konsole ausführen
Die folgende Abbildung zeigt das Ausführungsdiagramm einer Zustandsmaschine, die eine Distributed Map enthält. Diese Ausführung ist fehlgeschlagen, weil der Map Run fehlgeschlagen ist. Bis redrive der Map Run, du musst redrive der übergeordnete Arbeitsablauf.
Bis redrive ein Map Run von der Konsole aus
-
Öffnen Sie die Step Functions Functions-Konsole
und wählen Sie dann eine vorhandene Zustandsmaschine aus, die eine verteilte Map enthält, deren Ausführung fehlgeschlagen ist. -
Wählen Sie auf der Detailseite der Zustandsmaschine unter Ausführungen eine Instanz dieser Zustandsmaschine aus, deren Ausführung fehlgeschlagen ist.
-
Wählen Sie aus.Redrive.
-
In der RedriveWählen Sie in einem Dialogfeld Redrive Ausführung.
Tipp
Sie können auch redrive einen Map-Lauf auf der Seite „Ausführungsdetails“ oder „Map-Run-Details“.
Wenn Sie sich auf der Seite mit den Ausführungsdetails befinden, führen Sie einen der folgenden Schritte aus redrive die Ausführung:
-
Wählen Sie Wiederherstellen und wählen Sie dann Redrive aufgrund eines Fehlers.
-
Wählen Sie Aktionen und dann Redrive.
Wenn Sie sich auf der Seite mit den Kartenausführungsdetails befinden, wählen Sie Wiederherstellen und dann Redrive nach einem Fehlschlag.
Beachten Sie, dass redrive verwendet dieselbe Zustandsmaschinen-Definition undARN. Es setzt die Ausführung ab dem Schritt fort, der beim ursprünglichen Ausführungsversuch fehlgeschlagen ist. In diesem Beispiel handelt es sich um den Schritt Distributed Map mit dem Namen Map und den darin enthaltenen Eingabeschritt Process. Nach dem Neustart der erfolglosen untergeordneten Workflow-Ausführungen von Map Run redrive setzt die Ausführung für den Schritt „Fertig“ fort.
-
-
Wählen Sie auf der Seite mit den Ausführungsdetails die Option Map Run aus, um die Details des redriven Lauf zuordnen.
Auf dieser Seite können Sie sich die Ergebnisse der redriven Ausführung. In dem Zusammenfassung der Ausführung von Map Run Abschnitt können Sie beispielsweise sehen Redrive Anzahl, die angibt, wie oft der Map Run durchgeführt wurde redriven. Im Bereich Ereignisse können Sie die redrive verwandte Ausführungsereignisse, die an die Ereignisse des ursprünglichen Ausführungsversuchs angehängt wurden. Zum Beispiel das
MapRunRedriven
Ereignis.
Nachdem du redriven Nach einem Map Run kannst du ihn untersuchen redrive Details in der Konsole oder mithilfe der DescribeExecutionAPIAktionen GetExecutionHistoryund. Weitere Informationen zur Untersuchung eines redriven Ausführung, sieheUntersuchen redriven Hinrichtungen.
Redriving Map Run mit API
Du kannst redrive ein teilnahmeberechtigter Map Run mit dem RedriveExecutionAPIim übergeordneten Workflow. Dadurch API werden erfolglose untergeordnete Workflow-Ausführungen in einem Map Run neu gestartet.
Im AWS Command Line Interface
(AWS CLI), führen Sie den folgenden Befehl aus, um redrive eine erfolglose State-Machine-Ausführung. Denken Sie daran, das zu ersetzen italicized
Text mit Ihren ressourcenspezifischen Informationen.
aws stepfunctions redrive-execution --execution-arn arn:aws:states:us-east-2:
123456789012
:execution:myStateMachine
:foo
Nachdem Sie redriven Einen Map Run kannst du dir ansehen redrive Details in der Konsole oder mithilfe der DescribeMapRunAPIAktion. Um das zu untersuchen redrive Einzelheiten zu Standard-Workflow-Ausführungen in einem Map Run können Sie mit der DescribeExecutionAPIAktion GetExecutionHistoryoder verwenden. Weitere Informationen zur Untersuchung eines redriven Ausführung, sieheUntersuchen redriven Hinrichtungen.
Sie können das untersuchen redrive Details zu Express-Workflow-Ausführungen in einem Map Run auf der Step Functions-Konsole