Konfiguration der Ausgabe mithilfe der OutputPath Filter ResultSelectorResultPath,, und - 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.

Konfiguration der Ausgabe mithilfe der OutputPath Filter ResultSelectorResultPath,, und

Wenn die check-address Lambda-Funktion in der WorkflowInputOutputState Machine aufgerufen wird, gibt die Funktion nach Durchführung der Adressüberprüfung eine Ausgabe-Payload zurück. Wählen Sie auf der Seite „Ausführungsdetails“ den Schritt „Adresse überprüfen“ und sehen Sie sich die Ausgabe-Payload innerhalb des Aufgabenergebnisses Schrittdetails im Bereich an.

{ "ExecutedVersion": "$LATEST", "Payload": { "statusCode": 200, "body": "{\"approved\":true,\"message\":\"identity validation passed\"}" }, "SdkHttpMetadata": { "AllHttpHeaders": { "X-Amz-Executed-Version": [ "$LATEST" ], ... ... "StatusCode": 200 }

Benutzen ResultSelector

Wenn Sie nun das Ergebnis der Identitäts- und Adressüberprüfungen für die folgenden Zustände in Ihrem Workflow bereitstellen müssen, können Sie den Knoten payload.body im Ausgabe-JSON auswählen und die StringToJson intrinsische Funktion im ResultSelector Filter verwenden, um die Daten nach Bedarf zu formatieren.

ResultSelectorwählt aus der Aufgabenausgabe aus, was benötigt wird. Im folgenden Beispiel wird die Zeichenfolge in $.payload.body verwendet und die States.StringToJson intrinsische Funktion angewendet, um die Zeichenfolge in JSON zu konvertieren, und fügt das resultierende JSON in den Identitätsknoten ein. ResultSelector

"ResultSelector": { "identity.$": "States.StringToJson($.Payload.body)" }

Folglich werden die folgenden JSON-Daten erstellt.

{ "identity": { "approved": true, "message": "Identity validation passed" } }

Bei der Arbeit mit diesen Eingabe- und Ausgabefiltern können auch Laufzeitfehler auftreten, die durch die Angabe ungültiger JSON-Pfadausdrücke entstehen. Weitere Informationen finden Sie unter .

Benutzen ResultPath

Mithilfe des ResultPath Felds können Sie in der ursprünglichen Eingabe-Payload einen Speicherort angeben, um das Ergebnis der Aufgabenverarbeitung eines Bundesstaates zu speichern. Wenn Sie nichts angebenResultPath, wird standardmäßig der Wert verwendet$, wodurch die anfängliche Eingabe-Payload durch das rohe Task-Ergebnis ersetzt wird. Wenn Sie ResultPath als angebennull, wird das Rohergebnis verworfen und die anfängliche Eingabe-Payload wird zur effektiven Ausgabe.

Wenn Sie das ResultPath Feld auf die mithilfe des Felds erstellten JSON-Daten anwenden, wird das Aufgabenergebnis innerhalb des Ergebnisknotens in der Eingabe-Payload hinzugefügt, wie im folgenden Beispiel gezeigt: ResultSelector

{ "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" }, "results": { "identity": { "approved": true } } }

Benutzen OutputPath

Sie können einen Teil der Statusausgabe nach der Anwendung von auswählenResultPath, um zum nächsten Status überzugehen. Auf diese Weise können Sie unerwünschte Informationen herausfiltern und nur den gewünschten Teil von JSON übergeben.

Im folgenden Beispiel speichert das OutputPath Feld die Statusausgabe im Ergebnisknoten:"OutputPath": "$.results". Folglich sieht die endgültige Ausgabe des Zustands, die Sie an den nächsten Status übergeben können, wie folgt aus:

{ "addressResult": { "approved": true, "message": "address validation passed" }, "identityResult": { "approved": true, "message": "identity validation passed" } }

Verwendung von Konsolenfunktionen zur Visualisierung der Eingabe- und Ausgabedatenflüsse

Sie können den Eingabe- und Ausgabedatenfluss zwischen den Zuständen in Ihren Workflows mithilfe des Datenflusssimulators der Step Functions-Konsole oder der Option Erweiterte Ansicht auf der Seite Ausführungsdetails visualisieren.