Konfigurieren Sie Ein- und Ausgänge für Ihre Bundesstaaten - 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.

Konfigurieren Sie Ein- und Ausgänge für Ihre Bundesstaaten

Jeder Staat trifft eine Entscheidung oder führt eine Aktion aus, die auf Eingaben basiert, die er erhält. In den meisten Fällen gibt es dann die Ausgabe an andere Zustände weiter. In Workflow Studio können Sie konfigurieren, wie ein Status seine Ein- und Ausgabedaten imEingabeundAusgabeRegisterkarten desForm-Panel. Verwenden derInformationenLinks zum Zugriff auf kontextuelle Hilfe beim Konfigurieren von Ein- und Ausgängen.


        Eingänge, Ausgänge und Hilfe-Panel

Weitere Informationen dazu, wie Step Functions Ein- und Ausgabe verarbeitet, finden Sie unterVerarbeitung von Eingabe und Ausgabe in Step Functionsaus.

Konfigurieren der Eingabe in einen Status

Jeder Staat erhält Eingaben aus dem vorherigen Status als JSON. Wenn Sie die Eingabe filtern möchten, können Sie dieInputPathUnter dem VerzeichnisEingabeRegisterkarte im RegisterkarteInspectorum dies auszuwählen. DieInputPathist eine Zeichenfolge, beginnend mit$, das einen bestimmten JSON-Knoten identifiziert. Diese heißenReferenzpfade, und sie folgen JsonPath -Syntax.


          Optionen für die Eingabe

So filtern Sie die Eingabe:

  • Klicken Sie aufEingabe filtern mitInputPathaus.

  • Geben Sie ein gültigesInputPathaus.

IhreInputPath-Filter wird Ihrem Workflow hinzugefügt.

Beispiel 1

In diesem Beispiel enthält die Eingabe zu Ihrem Zustand Folgendes:

{ "comment": "Example for InputPath", "dataset1": { "val1": 1, "val2": 2, "val3": 3 }, "dataset2": { "val1": "a", "val2": "b", "val3": "c" } }

So wenden Sie dasInputPathwählenEingabe mit InputPath filternund geben Sie dann einen geeigneten Referenzpfad ein. Wenn du eingibst$.dataset2.val1wird der folgende JSON als Eingabe an den Status übergeben:

{"a"}

Ein Referenzpfad kann auch eine Auswahl von Werten haben. Wenn Ihre Referenz lautet{ "a": [1, 2, 3, 4] }und Sie wenden den Referenzpfad an$.a[0:2]als InputPath ist folgendes das Ergebnis:

[ 1, 2 ]

Parallel,MapundPassFlow-Zustände haben eine zusätzliche Eingabefilteroption namensParametersKlicken Sie unter ihremEingabeRegisterkarte. Dieser Filter wird nach dem InputPath -Filter und kann verwendet werden, um ein benutzerdefiniertes JSON-Objekt zu erstellen, das aus einem oder mehreren Schlüssel-Wert-Paaren besteht. Die Werte können jedes Paares entweder statische Werte sein, können aus der Eingabe ausgewählt oder aus derContext-Objektmit einem Pfad.

Anmerkung

Wenn Sie festlegen möchten, dass ein Parameter einen Referenzpfad nutzen soll, um auf einen JSON-Knoten in der Eingabe zu verweisen, muss der Name des Parameters mit enden.$aus.

Beispiel 2

In diesem Beispiel folgt die Eingabe zu einemParallelstate:

{ "comment": "Example for Parameters", "product": { "details": { "color": "blue", "size": "small", "material": "cotton" }, "availability": "in stock", "sku": "2317", "cost": "$23" } }

Um einen Teil dieser Informationen auszuwählen und zusätzliche Schlüssel-Wert-Paare mit einem statischen Wert zu übergeben, können Sie imParameterFeld, unter demParallelstate'sEingabeRegisterkarte.

{ "comment": "Selecting what I care about.", "MyDetails": { "size.$": "$.product.details.size", "exists.$": "$.product.availability", "StaticValue": "foo" } }

Die folgende JSON wird das Ergebnis sein:

{ "comment": "Selecting what I care about.", "MyDetails": { "size": "small", "exists": "in stock", "StaticValue": "foo" } }

Konfigurieren Sie die Ausgabe eines Bundesstaates

Jeder Zustand erzeugt JSON-Ausgabe, die gefiltert werden kann, bevor sie an den nächsten Zustand übergeben wird. Es stehen mehrere Filter zur Verfügung, von denen jeder die Ausgabe auf andere Weise beeinflusst. Ausgabefilter, die für jeden Bundesstaat verfügbar sind, sind unter derAusgabeRegisterkarte im RegisterkarteInspectoraus. Für Aufgabenstatus werden alle Ausgabefilter, die Sie auswählen, in dieser Reihenfolge verarbeitet:

  1. ResultSelectorVerwenden vonResultSelectorum das Ergebnis des Staates zu manipulieren. Sie können ein neues JSON-Objekt mit Teilen des Ergebnisses erstellen.

  2. ResultPathaus. Verwenden vonResultPathum eine Kombination aus der Statuseingabe und des Aufgabenergebnisses auszuwählen, das an die Ausgabe übergeben soll.

  3. OutputPathaus. Verwenden vonOutputPathum die JSON-Ausgabe zu filtern, um auszuwählen, welche Informationen aus dem Ergebnis an den nächsten Status übergeben werden.


          Ausgabe-Optionen

Verwenden von ResultSelector

ResultSelectorist ein optionaler Ausgabefilter für die folgenden Zustände:

  • -Task-Zustand, die alle Bundesstaaten sind, die in derAktionendes States-Browsers.

  • Zuordnungszustand, im-Ablaufdes States-Browsers.

  • Parallel Zustände, im-Ablaufdes States-Browsers.

ResultSelectorkann verwendet werden, um ein benutzerdefiniertes JSON-Objekt bestehend aus einem oder mehreren Schlüssel-Wert-Paaren zu erstellen. Die Werte können jedes Paares entweder statische Werte sein oder aus dem Ergebnis des Status mithilfe eines Pfades ausgewählt werden.

Anmerkung

Wenn Sie festlegen möchten, dass ein Parameter einen Pfad nutzen soll, um auf einen JSON-Knoten im Ergebnis zu verweisen, muss der Name des Parameters mit enden.$aus.

Beispiel 1

In diesem Beispiel verwenden SieResultSelectorum die Antwort des Amazon EMR zu manipulieren CreateCluster API-Aufruf für einen Amazon EMRCreateClusterstaten. Das Folgende ist das Ergebnis des Amazon EMRCreateClusterAPI-Aufruf:

{ "resourceType": "elasticmapreduce", "resource": "createCluster.sync", "output": { "SdkHttpMetadata": { "HttpHeaders": { "Content-Length": "1112", "Content-Type": "application/x-amz-JSON-1.1", "Date": "Mon, 25 Nov 2019 19:41:29 GMT", "x-amzn-RequestId": "1234-5678-9012" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { "RequestId": "1234-5678-9012" }, "ClusterId": "AKIAIOSFODNN7EXAMPLE" } }

Um einen Teil dieser Informationen auszuwählen und ein zusätzliches Schlüssel-Wert-Paar mit einem statischen Wert zu übergeben, geben Sie Folgendes in derResultSelectorFeld, unter dem BundesstaatAusgabeRegisterkarte:

{ "result": "found", "ClusterId.$": "$.output.ClusterId", "ResourceType.$": "$.resourceType" }

benutzenResultSelectorführt zu folgendem Ergebnis:

{ "result": "found", "ClusterId": "AKIAIOSFODNN7EXAMPLE", "ResourceType": "elasticmapreduce" }

Verwenden von ResultPath

Die Ausgabe eines Status kann eine Kopie seiner Eingabe, das entstandene Ergebnis oder eine Kombination aus Eingabe und Ergebnis sein. Verwenden Sie ResultPath, um zu steuern, welche Kombination daraus an die Statusausgabe weitergeleitet wird. Für weitere Anwendungsfälle vonResultPath, sieheResultPathaus.

ResultPathist ein optionaler Ausgabefilter für die folgenden Zustände:

  • -Task-Zustand, die alle Bundesstaaten sind, die in derAktionendes States-Browsers.

  • Zuordnungszustand, im-Ablaufdes States-Browsers.

  • Parallel Zustände, im-Ablaufdes States-Browsers.

  • Pass-Zustand, im-Ablaufdes States-Browsers.

ResultPathkann verwendet werden, um das Ergebnis der ursprünglichen Statuseingabe hinzuzufügen. Der angegebene Pfad gibt an, wo das Ergebnis hinzugefügt werden soll.

Beispiel

Das Folgende ist die Eingabe für einen bestimmten Task-Status:

{ "details": "Default example", "who": "AWS Step Functions" }

Das Ergebnis des Aufgabenstatus ist folgendes:

Hello, AWS Step Functions

Sie können dieses Ergebnis zur Eingabe des Bundesstaates hinzufügen, indem SieResultPathund geben Sie eine Referenz einPfaddas gibt an, wo das Ergebnis hinzugefügt werden soll, z.$.taskresult:

Mit diesemResultPathfolgt wird der folgende JSON-Code als Ausgabe des -Status übergeben.

{ "details": "Default example", "who": "AWS Step Functions", "taskresult": "Hello, AWS Step Functions!" }

Verwenden von OutputPath

DieOutputPathMit filtern können Sie unerwünschte Informationen herausfiltern und nur den gewünschten Teil von JSON übergeben. DieOutputPathist eine Zeichenfolge, die mit $ beginnt, die Knoten innerhalb von JSON-Text identifiziert.

Beispiel

Ein Lambda Invoke API-Aufruf gibt zusätzlich zur Payload Metadaten zurück, die das Ergebnis der Lambda-Funktion ist. Ein Beispiel für die Antwort dieses API-Aufrufs ist unter derAusgabeTab des BundesstaatesForm-Modus.


            Ausgabebereich

Sie könnenOutputPathum die zusätzlichen Metadaten herauszufiltern. Standardmäßig enthalten Lambda Invoke Zustände, die über das Workflow Studio erstellt wurden, eine$.Payload OutputPathFilter. Dieser Standardwert entfernt die zusätzlichen Metadaten und gibt eine Ausgabe zurück, die der direkten Ausführung der Lambda-Funktion entspricht.

Das Ergebnisbeispiel für Lambda Invoke Task und das$.Payload Ausgabepath übergibt den folgenden JSON als Ausgabe:

{ "foo": "bar", "colors": [ "red", "blue", "green" ], "car": { "year": 2008, "make": "Toyota", "model": "Matrix" } }
Anmerkung

Seit demOutputPathfilter ist der letzte Ausgabefilter, der wirksam wird, wenn Sie zusätzliche Ausgabefilter wieResultSelectoroderResultPathändern, sollten Sie den Standardwert ändern$.Payload OutputPathFilter entsprechend.