Verwenden des Datenflusssimulators zum Testen des Datenflusses in Step Functions - 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.

Verwenden des Datenflusssimulators zum Testen des Datenflusses in Step Functions

Sie können Workflows in der Step Functions Functions-Konsole entwerfen, implementieren und debuggen. Sie können den Datenfluss in Ihren Workflows auch durch JsonPathEingabe- und Ausgabedatenverarbeitung steuern. Mit dem Datenflusssimulator können Sie die Reihenfolge simulieren, in der die Workflow-Status der Aufgabe Staaten in Ihrem Workflow Daten zur Laufzeit verarbeiten. Mithilfe des Simulators können Sie verstehen, wie Daten gefiltert und bearbeitet werden, wenn sie von einem Zustand in einen anderen fließen. Es simuliert jedes der folgenden Felder, die Step Functions zur Verarbeitung und Steuerung des JSON Datenflusses verwendet:

InputPath

Wählt WHATeinen Teil der gesamten Eingabe-Payload aus, der als Eingabe für eine Aufgabe verwendet werden soll. Wenn Sie dieses Feld angeben, wendet Step Functions dieses Feld zuerst an.

Parameter

Gibt an, wie HOWdie Eingabe aussehen soll, bevor die Aufgabe aufgerufen wird. Mit dem Parameters Feld können Sie eine Sammlung von Schlüssel-Wert-Paaren erstellen, die als Eingabe an eine AWS -Service Integration, z. B. eine Funktion, übergeben werden. AWS Lambda Diese Werte können statisch sein oder dynamisch entweder aus der Statuseingabe oder dem Workflow-Kontextobjekt ausgewählt werden.

ResultSelector

Legt fest WHAT, ob aus der Ausgabe einer Aufgabe ausgewählt werden soll. Mit dem ResultSelector Feld können Sie eine Sammlung von Schlüssel-Wert-Paaren erstellen, die das Ergebnis eines Bundesstaates ersetzen, und diese Sammlung an diese Sammlung übergeben. ResultPath

Zustandsausgabe mithilfe von Workflows ResultPath in Step Functions angeben

Legt fest WHERE, ob die Ausgabe einer Aufgabe erstellt werden soll. Verwenden Sie dieResultPath, um zu ermitteln, ob es sich bei der Ausgabe eines Status um eine Kopie seiner Eingabe, des von ihm erzeugten Ergebnisses oder um eine Kombination aus beidem handelt.

Filtern der Statusausgabe mithilfe von Workflows OutputPath in Step Functions

Legt fest WHAT, dass an den nächsten Status gesendet werden soll. Mit OutputPath können Sie unerwünschte Informationen herausfiltern und nur den Teil der JSON Daten weitergeben, der Ihnen wichtig ist.

Verwenden des Datenflusssimulators

Der Simulator ermöglicht einen side-by-side Echtzeitvergleich Ihrer Daten vor und nach dem Anwenden eines Eingabe- und Ausgabedatenverarbeitungsfeldes. Um den Simulator zu verwenden, geben Sie eine JSON Eingabe an. Evaluieren Sie ihn dann anhand der einzelnen Eingabe- und Ausgabeverarbeitungsfelder. Der Simulator validiert Ihre JSON Eingabe automatisch und hebt alle Syntaxfehler hervor.

Um den Datenflusssimulator zu verwenden

In den folgenden Schritten geben Sie JSON Eingaben ein und wenden die Parameter Felder InputPath und an. Sie können auch die anderen verfügbaren Felder anwenden und deren Ausgaben anzeigen.

  1. Öffnen Sie die Step Functions Functions-Konsole.

  2. Wählen Sie im Navigationsbereich Datenflusssimulator aus.

  3. Ersetzen Sie im Eingabebereich Bundesland die vorab ausgefüllten JSON Beispieldaten durch die folgenden JSON Daten. Wählen Sie anschließend Weiter.

    { "data": { "firstname": "Jane", "lastname": "Doe", "identity": { "email": "jdoe@example.com", "ssn": "123-45-6789" }, "address": { "street": "123 Main St", "city": "Columbus", "state": "OH", "zip": "43219" } } }
  4. Geben Sie für die Eingabe ein InputPath, $.data.address um den Adressknoten der JSON Eingabedaten auszuwählen.

    Im InputPath Feld Eingabe nach Bundesstaat werden die folgenden Ergebnisse angezeigt.

    { "street": "123 Main St", "city": "Columbus", "state": "OH", "zip": "43219" }
  5. Wählen Sie Weiter.

  6. Wenden Sie das Parameters Feld an, um die resultierenden JSON Daten in eine Zeichenfolge zu konvertieren. Gehen Sie wie folgt vor, um die Daten zu konvertieren:

    1. Geben Sie im Feld Parameter den folgenden Code ein, um eine Zeichenfolge mit dem Namen zu erstellenaddressString.

      { "addressString.$": "States.Format('{}. {}, {} - {}', $.street, $.city, $.state, $.zip)" }
  7. Das Ergebnis der Parameters Feldanwendung wird im Feld Gefilterte Eingabe nach Parametern angezeigt.

Überlegungen zur Verwendung des Datenflusssimulators

Bevor Sie den Datenflusssimulator verwenden, sollten Sie seine Einschränkungen berücksichtigen, einschließlich, aber nicht beschränkt auf:

  • Filterausdrücke werden nicht unterstützt

    Filterausdrücke im Simulator verhalten sich anders als im Step Functions Functions-Dienst. Dazu gehören Ausdrücke, die die folgende Syntax verwenden:[?(expression)]. Im Folgenden finden Sie eine Liste nicht unterstützter Ausdrücke. Wenn diese Ausdrücke verwendet werden, geben sie nach ihrer Auswertung möglicherweise nicht das erwartete Ergebnis zurück.

    • $..book[?(@.isInStock==true)]

    • $..book[?(@.price > 10.0)].title

  • Falsche JsonPath Auswertung für Arrays mit einzelnen Elementen

    Wenn Sie Ihre Daten mit einem JsonPath Ausdruck filtern, der ein einzelnes Array-Element zurückgeben würde, gibt der Simulator das Element ohne das Array zurück. Betrachten Sie beispielsweise das folgende Datenarray mit dem Namenitems:

    { "items": [ { "name": "shoe", "color": "blue", "comment": "nice shoe" }, { "name": "hat", "color": "red" }, { "name": "shirt", "color": "yellow" } ] }

    Wenn Sie dieses items Array $..comment in das InputPath Feld eingeben, würden Sie die folgende Ausgabe erwarten:

    [ "nice shoe" ]

    Der Datenflusssimulator gibt jedoch stattdessen die folgende Ausgabe zurück:

    "nice shoe"

    Bei der JsonPath Auswertung eines Arrays, das mehrere Elemente enthält, gibt der Simulator die erwartete Ausgabe zurück.