Zustandsmaschinenstruktur in Amazon States Language für Step Functions Functions-Workflows - 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.

Zustandsmaschinenstruktur in Amazon States Language für Step Functions Functions-Workflows

Status verwalten und Daten transformieren

Step Functions hat kürzlich Variablen hinzugefügt und JSONata dient der Verwaltung von Zustands- und Transformationsdaten.

Erfahren Sie mehr über das Übergeben von Daten mit Variablen und das Transformieren von Daten mit JSONata.

Zustandsmaschinen werden mithilfe von JSON Text definiert, der eine Struktur darstellt, die die folgenden Felder enthält.

Comment (Optional)

Eine für Menschen lesbare Beschreibung des Zustandsautomaten.

QueryLanguage(Optional; wenn es weggelassen wird, wird standardmäßig verwendet) JSONPath
  • Der Name der Abfragesprache, die von der Zustandsmaschine verwendet wird. Zulässige Werte sind JSONPath und JSONata.

  • Falls nicht für den Zustandsmaschine angegeben, ist der Standardwert für jeden StatusJSONPath.

  • Wenn die Abfragesprache für Zustandsmaschinen der obersten Ebene aktiviert istJSONPath, können einzelne Staaten die Abfragesprache überschreiben, indem sie QueryLanguage auf JSONata setzen. Bei diesem Ansatz können Sie eine Zustandsmaschine schrittweise von JSONPath einem Zustand in JSONata einen Zustand umwandeln.

  • Hinweis: Sie können eine Zustandsmaschine auf oberster Ebene nicht JSONata in eine Kombination aus beiden Zuständen zurückversetzen. JSONata JSONPath

StartAt (Erforderlich)

Eine Zeichenfolge, die exakt (auch in Groß-/Kleinschreibung) mit dem Namen eines der Zustandsautomaten übereinstimmen muss.

TimeoutSeconds(Optional)

Die maximale Anzahl von Sekunden, die ein Zustandsautomat ausgeführt werden kann. Wenn sie länger als die angegebene Zeit ausgeführt wird, schlägt die Ausführung mit einem States.Timeout--Fehlernamen fehl.

Version (Optional)

Die Version der Amazon States-Sprache, die in der Zustandsmaschine verwendet wird (Standard ist „1.0").

States (Erforderlich)

Ein Objekt, das eine durch Kommata getrennte Gruppe von Zuständen umfasst.

Das Feld States enthält Zustände.

{ "State1" : { }, "State2" : { }, ... }

Ein Zustandsautomat wird definiert durch die Zustände, die er umfasst, und die Beziehungen zwischen ihnen.

Im Folgenden wird ein Beispiel gezeigt.

{ "Comment": "A Hello World example of the Amazon States Language using a Pass state", "StartAt": "HelloWorld", "States": { "HelloWorld": { "Type": "Pass", "Result": "Hello World!", "End": true } } }

Wenn eine Ausführung dieses Zustandsautomaten gestartet wird, beginnt das System mit dem Zustand, auf den das Feld StartAt verweist ("HelloWorld"). Wenn dieser Zustand ein Feld "End": true hat, stoppt die Ausführung und ein Ergebnis wird zurückgegeben. Andernfalls sucht das System nach einem Feld "Next": und fährt mit diesem Zustand fort. Dieser Vorgang wird wiederholt, bis das System einen Beendigungszustand erreicht (einen Zustand mit "Type": "Succeed", "Type": "Fail" oder "End": true) oder ein Laufzeitfehler auftritt.

Die folgenden Regeln gelten für Zustände in einem Zustandsautomaten:

  • Zustände können in beliebiger Reihenfolge innerhalb des umschließenden Blocks auftreten. Die Reihenfolge, in der sie aufgelistet werden, wirkt sich jedoch nicht auf die Reihenfolge aus, in der sie ausgeführt werden. Die Reihenfolge wird durch die Inhalte der Zustände bestimmt.

  • Innerhalb eines Zustandsautomaten kann nur ein Zustand als start-Zustand bezeichnet werden, und zwar durch den Wert des Felds StartAt in der Top-Level-Struktur. Dieser Zustand ist derjenige, der als erster ausgeführt wird, wenn die Ausführung startet.

  • Jeder Zustand, für den das End-Feld true ist, gilt als ein end- (oder terminal-)Zustand. Abhängig von Ihrer Zustandsmaschinen-Logik — wenn Ihre Zustandsmaschine beispielsweise mehrere Ausführungszweige hat — haben Sie möglicherweise mehr als einen Status. end

  • Wenn Ihr Zustandsautomat nur aus einem Zustand besteht, kann das sowohl der start- als auch der end-Zustand sein.

Allgemeine Statusfelder in Workflows

Die folgenden Felder sind allen Zustandselementen gemeinsam.

Type (Erforderlich)

Der Zustandstyp.

QueryLanguage(Optional; wenn es weggelassen wird, ist der Standardwert) JSONPath
  • Der Name der vom Staat verwendeten Abfragesprache. Zulässige Werte sind JSONPath und JSONata.

  • Wenn die Abfragesprache der obersten Ebene der Zustandsmaschine istJSONPath, können einzelne Staaten die Abfragesprache überschreiben, indem sie QueryLanguage auf JSONata setzen. Bei diesem Ansatz können Sie eine Zustandsmaschine schrittweise von JSONPath einem Zustand in JSONata einen Zustand umwandeln.

Next

Der Name des nächsten Zustands, der ausgeführt wird, wenn der aktuelle Zustand beendet ist. Einige Zustandstypen, z. B. Choice, erlauben mehrere Übergangszustände.

Wenn es sich bei dem aktuellen Status um den letzten Status in Ihrem Workflow oder um einen Endstatus wie Workflow-Status „Erfolgreich“ oder handeltWorkflow-Status „Fehlgeschlagen“, müssen Sie das Next Feld nicht angeben.

End

Gibt an, ob dieser Zustand ein Beendigungszustand ist (er beendet die Ausführung), wenn auf true gesetzt. Es kann eine beliebige Anzahl von Beendigungszuständen pro Zustandsautomaten geben. Von Next oder End kann nur einer in einem Zustand verwendet werden. Einige ZustandstypenChoice, wie z. B. oder Endstatus, wie Workflow-Status „Erfolgreich“ undWorkflow-Status „Fehlgeschlagen“, unterstützen oder verwenden das End Feld nicht.

Comment (Optional)

Enthält eine für Menschen lesbare Beschreibung des Zustands.

Assign (Optional)

Wird zum Speichern von Variablen verwendet. Das Assign Feld akzeptiert ein JSON Objekt mit Schlüssel/Wert-Paaren, die Variablennamen und die ihnen zugewiesenen Werte definieren. Jeder Zeichenkettenwert, auch solche innerhalb von Objekten oder Arrays, wird so ausgewertet, JSONata als ob er von Zeichen umgeben wäre {% %}

Weitere Informationen finden Sie unter Übergeben von Daten zwischen Staaten mit Variablen.

Output(JSONataNur optional)

Wird verwendet, um die Ausgabe des Status zu spezifizieren und zu transformieren. Wenn angegeben, überschreibt der Wert die Standardeinstellung für die Statusausgabe.

Das Ausgabefeld akzeptiert jeden JSON Wert (Objekt, Array, Zeichenfolge, Zahl, boolescher Wert, Null). Jeder Zeichenkettenwert, einschließlich der Werte innerhalb von Objekten oder Arrays, wird so ausgewertet, als JSONata ob er von {%%} Zeichen umgeben wäre.

Output akzeptiert auch direkt einen JSONata Ausdruck, zum Beispiel: „Output“: „{% jsonata expression%}“

Weitere Informationen finden Sie unter Verarbeitung von Eingabe und Ausgabe.

InputPath(Nur optional) JSONPath

Ein Pfad der einen Teil der Eingabe des Zustands auswählt, der an die Aufgabe des Zustands zur Verarbeitung übergeben werden soll. Wenn dieses Attribut nicht angegeben wird, hat es den Wert $, der die gesamte Eingabe bezeichnet. Weitere Informationen finden Sie unter Verarbeitung von Eingabe und Ausgabe.

OutputPath(JSONPathNur optional)

Ein Pfad, der einen Teil der Ausgabe des Status auswählt, der an den nächsten Status übergeben werden soll. Wenn es weggelassen wird, hat es den Wert$, der die gesamte Ausgabe bezeichnet. Weitere Informationen finden Sie unter Verarbeitung von Eingabe und Ausgabe.