Neustarten von State-Machine-Ausführungen mit redrive In-Step-Funktionen - 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.

Neustarten von State-Machine-Ausführungen mit redrive In-Step-Funktionen

Sie können Folgendes verwenden … redrive um Ausführungen von Standard-Workflows neu zu starten, die in den letzten 14 Tagen nicht erfolgreich abgeschlossen wurden. Dazu gehören fehlgeschlagene, abgebrochene oder zeitüberschreitende Ausführungen.

Wenn Sie redrive eine Ausführung, setzt die fehlgeschlagene Ausführung aus dem erfolglosen Schritt fort und verwendet dieselbe Eingabe. Step Functions behält die Ergebnisse und die Ausführungshistorie der erfolgreichen Schritte bei, die nicht erneut ausgeführt werden, wenn Sie redrive eine Ausführung. Nehmen wir zum Beispiel an, dass Ihr Workflow zwei Status enthält: einen Workflow-Status übergeben Status, gefolgt von einem Workflow-Status der Aufgabe Status. Wenn Ihre Workflow-Ausführung im Task-Status fehlschlägt und Sie redrive bei der Ausführung wird der Task-Status neu geplant und anschließend erneut ausgeführt.

Redriven Ausführungen verwenden dieselbe Zustandsmaschinen-Definition und AusführungARN, die für den ursprünglichen Ausführungsversuch verwendet wurden. Wenn Ihr ursprünglicher Ausführungsversuch mit einer Version, einem Alias oder beidem verknüpft war, redriven Die Ausführung ist derselben Version, demselben Alias oder beidem zugeordnet. Selbst wenn Sie Ihren Alias so aktualisieren, dass er auf eine andere Version verweist, redriven Die Ausführung verwendet weiterhin die Version, die dem ursprünglichen Ausführungsversuch zugeordnet war. Weil redriven Ausführungen verwenden dieselbe Zustandsmaschinen-Definition. Sie müssen eine neue Ausführung starten, wenn Sie Ihre Zustandsmaschinen-Definition aktualisieren.

Wenn Sie redrive Bei einer Ausführung wird der Timeout auf State-Machine-Ebene, sofern definiert, auf 0 zurückgesetzt. Weitere Hinweise zum Timeout auf State-Machine-Ebene finden Sie unter. TimeoutSeconds

Ausführung redrives werden als Zustandsübergänge betrachtet. Informationen darüber, wie sich Statusübergänge auf die Abrechnung auswirken, finden Sie unter Step Functions — Preisgestaltung.

Redrive Eignung für erfolglose Hinrichtungen

Sie können redrive Ausführungen, wenn Ihr ursprünglicher Ausführungsversuch die folgenden Bedingungen erfüllt:

  • Sie haben die Hinrichtung am oder nach dem 15. November 2023 begonnen. Hinrichtungen, die Sie vor diesem Datum begonnen haben, kommen nicht in Frage redrive.

  • Der Ausführungsstatus ist nichtSUCCEEDED.

  • Die Workflow-Ausführung hat den Wert nicht überschritten redrivable Zeitraum von 14 Tagen. Redrivable Zeitraum bezieht sich auf die Zeit, in der Sie redrive eine bestimmte Ausführung. Dieser Zeitraum beginnt an dem Tag, an dem eine Zustandsmaschine ihre Ausführung abschließt.

  • Die Workflow-Ausführung hat die maximale Öffnungszeit von einem Jahr nicht überschritten. Informationen zu den Quoten für die Ausführung von Zustandsmaschinen finden Sie unterKontingente im Zusammenhang mit der Ausführung von Zustandsmaschinen.

  • Die Anzahl der Ausführungsereignisse liegt unter 24.999. Redriven Ausführungen fügen ihren Ereignisverlauf an den vorhandenen Ereignisverlauf an. Stellen Sie sicher, dass Ihre Workflow-Ausführung weniger als 24.999 Ereignisse enthält, um das Verlaufsereignis und mindestens ein anderes ExecutionRedriven Verlaufsereignis zu berücksichtigen.

Redrive Verhalten einzelner Staaten

Abhängig von dem Status, der in Ihrem Workflow fehlgeschlagen ist redrive Das Verhalten für alle erfolglosen Staaten ist unterschiedlich. In der folgenden Tabelle werden die redrive Verhalten für alle Staaten.

Name des Bundesstaates Redrive Ausführungsverhalten
Workflow-Status übergeben

Wenn ein vorhergehender Schritt fehlschlägt oder bei der Zustandsmaschine ein Timeout auftritt, wird der Pass-Status beendet und nicht ausgeführt redrive.

Workflow-Status der Aufgabe

Plant den Task-Status und startet ihn erneut.

Wenn Sie redrive Bei einer Ausführung, bei der ein Task-Status erneut ausgeführt wird, wird der Status TimeoutSeconds für den Status, sofern definiert, auf 0 zurückgesetzt. Weitere Informationen zum Timeout finden Sie unter Task-Status.

Workflow-Status „Auswahl“ Wertet die Regeln für den Choice-Status neu aus.
Workflow-Status warten

Wenn der Status einen Zeitstempel in der Vergangenheit TimestampPath angibt Timestamp oder sich darauf bezieht, redrive bewirkt, dass der Wartestatus verlassen wird und wechselt in den im Feld angegebenen Status. Next

Workflow-Status „Erfolgreich“

Tut es nicht redrive gibt Maschinenausführungen an, die in den Status Erfolgreich übergehen.

Workflow-Status „Fehlgeschlagen“

Wechselt erneut in den Status Fehlgeschlagen und schlägt erneut fehl.

Status des parallelen Workflows

Terminverschiebungen und redrives nur die Zweige, die ausgefallen sind oder abgebrochen wurden.

Wenn der Status aufgrund eines States.DataLimitExceeded Fehlers fehlschlug, wird der Parallel-Status erneut ausgeführt, einschließlich der Verzweigungen, die beim ursprünglichen Ausführungsversuch erfolgreich waren.

Status „Inline Map“

Terminverschiebungen und redrives nur die Iterationen, die fehlgeschlagen sind oder abgebrochen wurden.

Wenn der Status aufgrund eines States.DataLimitExceeded Fehlers fehlschlug, wird der Inline-Map-Status erneut ausgeführt, einschließlich der Iterationen, die beim ursprünglichen Ausführungsversuch erfolgreich waren.

Status der verteilten Karte

redrives die erfolglosen untergeordneten Workflow-Ausführungen in einem Map Run. Weitere Informationen finden Sie unter Redriving Map-Runs in Step Functions Functions-Ausführungen.

Wenn der Status aufgrund eines States.DataLimitExceeded Fehlers fehlschlug, wird der Status Distributed Map erneut ausgeführt. Dies schließt die untergeordneten Workflows ein, die beim ursprünglichen Ausführungsversuch erfolgreich waren.

IAMErlaubnis zu redrive eine Hinrichtung

Step Functions benötigt die entsprechende Genehmigung für redrive eine Hinrichtung. Das folgende IAM Richtlinienbeispiel gewährt Ihrem Zustandsmaschine die geringste erforderliche Berechtigung für redriving eine Hinrichtung. 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:*" } ] }

Ein Beispiel für die Erlaubnis, die Sie benötigen redrive ein Map Run, sieheBeispiel für eine IAM Richtlinie für redriving eine verteilte Karte.

Redriving Ausführungen in der Konsole

Du kannst redrive zulässige Hinrichtungen von Step Functions console.

Stellen Sie sich zum Beispiel vor, dass Sie eine Zustandsmaschine ausführen und ein parallel Zustand nicht ausgeführt werden kann.

Das folgende Bild zeigt eine Lambda Beim Aufrufen eines Schritts mit dem Namen „Quadrate machen“ in einem parallelen Zustand wurde ein Fehler zurückgegeben. Dies führte dazu, dass auch der Status Parallel fehlschlug. Die Zweige, deren Ausführung im Gange war oder nicht gestartet wurde, werden gestoppt und die Ausführung der Zustandsmaschine schlägt fehl.

Beispieldiagramm einer fehlgeschlagenen State-Machine-Ausführung.
Bis redrive eine Ausführung von der Konsole aus
  1. Öffnen Sie die Step Functions Functions-Konsole und wählen Sie dann eine vorhandene Zustandsmaschine aus, deren Ausführung fehlgeschlagen ist.

  2. Wählen Sie auf der Detailseite der Zustandsmaschine unter Ausführungen eine Instanz mit fehlgeschlagener Ausführung aus.

  3. Wählen Sie aus.Redrive.

  4. In der RedriveWählen Sie in einem Dialogfeld Redrive Ausführung.

    Tipp

    Wenn Sie sich auf der Seite mit den Ausführungsdetails einer fehlgeschlagenen Ausführung befinden, gehen Sie wie folgt vor redrive die Ausführung:

    • Wählen Sie Wiederherstellen und wählen Sie dann Redrive aufgrund eines Fehlers.

    • Wählen Sie Aktionen und dann Redrive.

    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 die Verzweigungen „Rechteckzahl ausführen“ und „Drei Sekunden warten“ innerhalb des Parallel-Status. Nach dem Neustart der Ausführung dieser erfolglosen Schritte im Status Parallel redrive setzt die Ausführung für den Schritt „Fertig“ fort.

  5. Wählen Sie die Ausführung, um die Seite mit den Ausführungsdetails zu öffnen.

    Auf dieser Seite können Sie die Ergebnisse der redriven Ausführung. In dem Zusammenfassung der Ausführung Abschnitt können Sie beispielsweise sehen Redrive Anzahl, die angibt, wie oft eine Ausführung stattgefunden hat 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 ExecutionRedriven Ereignis.

Redriving Hinrichtungen mit API

Sie können redrive zulässige Hinrichtungen mit dem RedriveExecutionAPI. Dadurch werden erfolglose Ausführungen von Standard-Workflows von dem Schritt aus API neu gestartet, der fehlgeschlagen, abgebrochen wurde oder das Zeitlimit überschritten wurde.

Führen Sie in AWS Command Line Interface (AWS CLI) 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

Untersuchen redriven Hinrichtungen

Sie können eine untersuchen redriven Ausführung in der Konsole oder mitAPIs: GetExecutionHistoryund DescribeExecution.

Untersuchen redriven Ausführungen auf der Konsole
  1. Öffnen Sie die Step Functions Functions-Konsole und wählen Sie dann eine vorhandene Zustandsmaschine aus, für die Sie redriven eine Hinrichtung.

  2. Öffnen Sie die Seite mit den Ausführungsdetails.

    Auf dieser Seite können Sie die Ergebnisse der redriven Ausführung. In dem Zusammenfassung der Ausführung Abschnitt können Sie beispielsweise sehen Redrive Anzahl, die angibt, wie oft eine Ausführung stattgefunden hat 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 ExecutionRedriven Ereignis.

Untersuchen redriven Hinrichtungen mit APIs

Wenn du redriven eine State-Machine-Ausführung, Sie können eine der folgenden Optionen verwendenAPIs, um Details zu der redriven Ausführung. Denken Sie daran, das zu ersetzen italicized Text mit Ihren ressourcenspezifischen Informationen.

  • GetExecutionHistory — Gibt den Verlauf der angegebenen Ausführung als Liste von Ereignissen zurück. Dies gibt API auch die Details über redrive Versuch einer Ausführung, falls verfügbar.

    Führen Sie in den AWS CLI den folgenden Befehl aus.

    aws stepfunctions get-execution-history --execution-arn arn:aws:states:us-east-2:123456789012:execution:myStateMachine:foo
  • DescribeExecution — Stellt Informationen zur Ausführung einer Zustandsmaschine bereit. Dies kann die Zustandsmaschine sein, die der Ausführung zugeordnet ist, die Ausführung, Eingabe und Ausgabe, Ausführung redrive Details, falls verfügbar, und relevante Ausführungsmetadaten.

    Führen Sie in den AWS CLI den folgenden Befehl aus.

    aws stepfunctions describe-execution --execution-arn arn:aws:states:us-east-2:123456789012:execution:myStateMachine:foo

Versuchen Sie es erneut mit dem Verhalten von redriven Hinrichtungen

Wenn Ihre redriven Die Ausführung wiederholt einen Workflow-Status der AufgabeStatus des parallelen Workflows, oder Inline-Map-Status, für den Sie Wiederholungen definiert haben. Die Anzahl der Wiederholungsversuche für diese Zustände wird auf 0 zurückgesetzt, um die maximale Anzahl von Versuchen für zu ermöglichen redrive. Für ein redriven Bei der Ausführung können Sie einzelne Wiederholungsversuche dieser Zustände mithilfe der Konsole verfolgen.

Um die einzelnen Wiederholungsversuche in der Konsole zu überprüfen
  1. Wählen Sie auf der Seite „Ausführungsdetails“ der Step Functions Functions-Konsole einen Status aus, der erneut versucht wurde redrive.

  2. Wählen Sie Wiederholungen & redrivesRegisterkarte.

  3. Wählen Sie das Pfeilsymbol neben jedem Wiederholungsversuch, um die zugehörigen Details anzuzeigen. Wenn der Wiederholungsversuch erfolgreich war, können Sie die Ergebnisse unter Ausgabe anzeigen, das in einem Dropdown-Feld angezeigt wird.

Die folgende Abbildung zeigt ein Beispiel für die Wiederholungen, die für einen Status beim ursprünglichen Ausführungsversuch durchgeführt wurden, und für redrives dieser Ausführung. In diesem Bild werden drei Wiederholungen im Original durchgeführt und redrive Ausführungsversuche. Die Hinrichtung ist in der vierten erfolgreich redrive versucht es und gibt eine Ausgabe von 16 zurück.

Illustrativer Screenshot, der drei fehlgeschlagene Wiederholungen und Erfolg bei einem vierten Versuch zeigt.