Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Konfiguration von Zuständen, Eingaben und Ausgaben mit Workflow Studio in Step Functions

Fokusmodus
Konfiguration von Zuständen, Eingaben und Ausgaben mit Workflow Studio 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.

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.

Status verwalten und Daten transformieren

Jeder Staat trifft eine Entscheidung oder führt eine Aktion auf der Grundlage von Eingaben aus, die er erhält. In den meisten Fällen leitet er dann die Ausgabe an andere Staaten weiter. In Workflow Studio können Sie auf den Registerkarten Eingabe und Ausgabe des Bedienfelds konfigurieren, wie ein Status seine Eingabe- und Ausgabedaten filtert und manipuliert. Inspektor-Panel Verwenden Sie die Informationslinks, um bei der Konfiguration von Eingaben und Ausgaben auf die kontextuelle Hilfe zuzugreifen.

Illustrativer Screenshot mit Statuseingaben und -ausgängen und dem Informationshilfebereich

Ausführliche Informationen darüber, wie Step Functions Eingabe und Ausgabe verarbeitet, finden Sie unterEingabe und Ausgabe in Step Functions verarbeiten.

Konfigurieren Sie die Eingabe für einen Status

Jeder Status erhält Eingaben aus dem vorherigen Status als JSON. Wenn Sie die Eingabe filtern möchten, können Sie den InputPath Filter auf der Registerkarte Eingabe im Inspektor-Panel Bereich verwenden. Das InputPath ist eine Zeichenfolge, die mit beginnt $ und einen bestimmten JSON-Knoten identifiziert. Diese werden als Referenzpfade bezeichnet und folgen der JsonPath Syntax.

Um die Eingabe zu filtern:

  • Wählen Sie Eingabe filtern mit InputPath.

  • Geben Sie einen JsonPathfür den InputPath Filter gültigen Wert ein. Beispiel, $.data.

Ihr InputPath Filter wird zu Ihrem Workflow hinzugefügt.

Beispiel 1: Verwenden Sie den InputPath Filter in Workflow Studio

Angenommen, die Eingabe für Ihren Status enthält die folgenden JSON-Daten.

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

Um den InputPath Filter anzuwenden, wählen Sie Eingabe filtern mit InputPath und geben Sie dann einen entsprechenden Referenzpfad ein. Wenn Sie eingeben$.dataset2.val1, wird der folgende JSON-Code als Eingabe an den Status übergeben.

{"a"}

Ein Referenzpfad kann auch eine Auswahl von Werten enthalten. Wenn es sich bei den Daten, auf die Sie verweisen, um Daten handelt { "a": [1, 2, 3, 4] } und Sie den Referenzpfad $.a[0:2] als InputPath Filter anwenden, ist das folgende Ergebnis.

[ 1, 2 ]

Status des parallelen WorkflowsWorkflow-Status zuordnen, und Workflow-Status übergeben Flow-Status verfügen über eine zusätzliche Eingabefilteroption, die auf der jeweiligen Parameters Registerkarte Eingabe aufgerufen wird. Dieser Filter wird nach dem InputPath Filter wirksam und kann verwendet werden, um ein benutzerdefiniertes JSON-Objekt zu erstellen, das aus einem oder mehreren Schlüssel-Wert-Paaren besteht. Bei den Werten der einzelnen Paare kann es sich entweder um statische Werte handeln, sie können aus der Eingabe ausgewählt werden, oder sie können Zugreifen auf Ausführungsdaten aus dem Context-Objekt in Step Functions mit einem Pfad aus dem ausgewählt werden.

Anmerkung

Um anzugeben, dass ein Parameter einen Referenzpfad verwendet, um auf einen JSON-Knoten in der Eingabe zu verweisen, muss der Parametername mit enden.$.

Beispiel 2: Erstellen Sie eine benutzerdefinierte JSON-Eingabe für den Parallel-Status

Angenommen, die folgenden JSON-Daten sind die Eingabe für einen Parallelstatus.

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

Um einen Teil dieser Eingabe auszuwählen und zusätzliche Schlüssel-Wert-Paare mit einem statischen Wert zu übergeben, können Sie im Feld Parameter auf der Registerkarte Eingabe des Status Parallel Folgendes angeben.

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

Die folgenden JSON-Daten werden das Ergebnis sein.

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

Konfigurieren Sie die Ausgabe eines Zustands

Jeder Status erzeugt eine JSON-Ausgabe, die gefiltert werden kann, bevor sie an den nächsten Status übergeben wird. Es sind mehrere Filter verfügbar, und jeder wirkt sich auf unterschiedliche Weise auf die Ausgabe aus. Die für jeden Status verfügbaren Ausgabefilter sind auf der Registerkarte „Ausgabe“ im Inspektorfenster aufgeführt. Für Workflow-Status der Aufgabe Bundesstaaten werden alle von Ihnen ausgewählten Ausgabefilter in der folgenden Reihenfolge verarbeitet:

  1. ResultSelector: Verwenden Sie diesen Filter, um das Ergebnis des Status zu manipulieren. Sie können ein neues JSON-Objekt mit Teilen des Ergebnisses erstellen.

  2. Zustandsausgabe mithilfe von ResultPath In-Step-Funktionen angeben: Verwenden Sie diesen Filter, um eine Kombination aus der Statuseingabe und dem Aufgabenergebnis auszuwählen, die an die Ausgabe übergeben werden soll.

  3. Filtern der Statusausgabe mit OutputPath: Verwenden Sie diesen Filter, um die JSON-Ausgabe zu filtern und auszuwählen, welche Informationen aus dem Ergebnis an den nächsten Status übergeben werden.

Benutze ResultSelector

ResultSelectorist ein optionaler Ausgabefilter für die folgenden Staaten:

ResultSelectorkann verwendet werden, um ein benutzerdefiniertes JSON-Objekt zu erstellen, das aus einem oder mehreren Schlüssel-Wert-Paaren besteht. Die Werte jedes Paares können entweder statische Werte sein oder aus dem Ergebnis des Zustands mit einem Pfad ausgewählt werden.

Anmerkung

Um anzugeben, dass ein Parameter einen Pfad verwendet, um auf einen JSON-Knoten im Ergebnis zu verweisen, muss der Parametername mit enden.$.

Beispiel für die Verwendung eines ResultSelector Filters

In diesem Beispiel verwenden Sie, ResultSelector um die Antwort des Amazon CreateCluster EMR-API-Aufrufs für einen Amazon CreateCluster EMR-Status zu manipulieren. Das Folgende ist das Ergebnis des Amazon CreateCluster EMR-API-Aufrufs.

{ "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 das ResultSelectorFeld auf der Registerkarte Ausgabe des Bundesstaates ein.

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

Die Verwendung ResultSelector führt zu dem folgenden Ergebnis.

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

Benutzen ResultPath

Die Ausgabe eines Zustands kann eine Kopie seiner Eingabe, des von ihm erzeugten Ergebnisses oder eine Kombination aus Eingabe und Ergebnis sein. Verwenden Sie ResultPath, um zu steuern, welche Kombination daraus an die Statusausgabe weitergeleitet wird. Weitere Anwendungsfälle von finden ResultPath Sie unterZustandsausgabe mithilfe von ResultPath In-Step-Funktionen angeben.

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

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

Beispiel für die Verwendung eines ResultPath Filters

Nehmen wir an, das Folgende ist die Eingabe für einen Task-Status.

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

Das Ergebnis des Task-Status ist das Folgende.

Hello, AWS Step Functions

Sie können dieses Ergebnis zur Eingabe des Status hinzufügen, indem Sie einen Referenzpfad anwenden ResultPath und eingeben, der angibt, wo das Ergebnis hinzugefügt werden soll, z. B.$.taskresult:

Damit ResultPath ist das Folgende das JSON, das als Ausgabe des Status übergeben wird.

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

Benutze OutputPath

Mit dem OutputPath Filter können Sie unerwünschte Informationen herausfiltern und nur den Teil von JSON übergeben, den Sie benötigen. Das OutputPath ist eine Zeichenfolge, die mit beginnt $ und Knoten innerhalb von JSON-Text identifiziert.

Beispiel für die Verwendung eines OutputPath Filters

Stellen Sie sich vor, ein Lambda Invoke-API-Aufruf gibt zusätzlich zum Ergebnis der Lambda-Funktion Metadaten zurück.

{ "ExecutedVersion": "$LATEST", "Payload": { "foo": "bar", "colors": [ "red", "blue", "green" ], "car": { "year": 2008, "make": "Toyota", "model": "Matrix" } }, "SdkHttpMetadata": { "AllHttpHeaders": { "X-Amz-Executed-Version": ["$LATEST"] ...

Sie können es verwendenOutputPath, um die zusätzlichen Metadaten herauszufiltern. Standardmäßig lautet der Wert des OutputPathFilters für Lambda Invoke-Zustände, die mit dem Workflow Studio erstellt wurden. $.Payload Dieser Standardwert entfernt die zusätzlichen Metadaten und gibt eine Ausgabe zurück, die der direkten Ausführung der Lambda-Funktion entspricht.

Das Beispiel für das Ergebnis der Lambda Invoke-Aufgabe und der Wert von $.Payload für den Ausgabefilter übergeben die folgenden JSON-Daten als Ausgabe.

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

Der OutputPath Filter ist der letzte Ausgabefilter, der wirksam wird. Wenn Sie also zusätzliche Ausgabefilter wie ResultSelector oder verwendenResultPath, sollten Sie den Standardwert von $.Payload für den OutputPath Filter entsprechend ändern.

DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.