

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 von Zuständen, Eingaben und Ausgaben mit Workflow Studio in Step Functions
<a name="workflow-studio-process"></a>

**Status verwalten und Daten transformieren**  
Erfahren Sie mehr über das [Übergeben von Daten zwischen Zuständen mithilfe von Variablen](workflow-variables.md) und das [Transformieren von Daten mit JSONata](transforming-data.md).

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](workflow-studio.md#workflow-studio-components-formdefinition) 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\]](http://docs.aws.amazon.com/de_de/step-functions/latest/dg/images/wfs_input_output_01.png)


Ausführliche Informationen darüber, wie Step Functions Eingabe und Ausgabe verarbeitet, finden Sie unter[Eingabe und Ausgabe in Step Functions verarbeiten](concepts-input-output-filtering.md). 

## Konfigurieren Sie die Eingabe für einen Status
<a name="workflow-studio-process-input"></a>

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](workflow-studio.md#workflow-studio-components-formdefinition) Bereich verwenden. Das `InputPath` ist eine Zeichenfolge, die mit beginnt `$` und einen bestimmten JSON-Knoten identifiziert. Diese werden als [Referenzpfade](amazon-states-language-paths.md) bezeichnet und folgen der JsonPath Syntax. 

Um die Eingabe zu filtern:
+ Wählen Sie **Eingabe filtern mit InputPath**.
+ Geben Sie einen [JsonPath](https://datatracker.ietf.org/wg/jsonpath/about/)für den `InputPath` Filter gültigen Wert ein. Beispiel, **\$1.data**.

Ihr `InputPath` Filter wird zu Ihrem Workflow hinzugefügt.

**Example 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**\$1.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 Workflows](state-parallel.md)[Workflow-Status zuordnen](state-map.md), und [Workflow-Status übergeben](state-pass.md) 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. Die Werte der einzelnen Paare können entweder statische Werte sein, sie können aus der Eingabe ausgewählt werden, oder sie können [Zugreifen auf Ausführungsdaten aus dem Context-Objekt in Step Functions](input-output-contextobject.md) 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`.$`.

**Example 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
<a name="workflow-studio-process-output"></a>

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](state-task.md) 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. 

1.  `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. 

1.  `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
<a name="workflow-studio-process-output-resultselector"></a>

`ResultSelector`ist ein optionaler Ausgabefilter für die folgenden Staaten:
+  [Workflow-Status der Aufgabe](state-task.md)Staaten, bei denen es sich ausschließlich um Staaten handelt, die auf der Registerkarte **Aktionen** von aufgeführt sind[Staaten (Browser)](workflow-studio.md#workflow-studio-components-states). 
+  [Workflow-Status zuordnen](state-map.md)Staaten, auf der Registerkarte **Flow** des States-Browsers. 
+  [Status des parallelen Workflows](state-parallel.md)Staaten, auf der Registerkarte **Flow** des States-Browsers. 

`ResultSelector`kann 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`.$`.

**Example 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 **ResultSelector**Feld 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
<a name="workflow-studio-process-output-resultpath"></a>

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 unter[Zustandsausgabe mithilfe von ResultPath In-Step-Funktionen angeben](input-output-resultpath.md).

`ResultPath`ist ein optionaler Ausgabefilter für die folgenden Zustände:
+  [Workflow-Status der Aufgabe](state-task.md)Staaten, das sind alles Staaten, die auf der Registerkarte „**Aktionen**“ des Status-Browsers aufgeführt sind. 
+  [Workflow-Status zuordnen](state-map.md)Staaten, auf der Registerkarte **Flow** des States-Browsers. 
+  [Status des parallelen Workflows](state-parallel.md)Staaten, auf der Registerkarte **Flow** des States-Browsers. 
+  [Workflow-Status übergeben](state-pass.md)Staaten, auf der Registerkarte **Flow** des States-Browsers. 

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

**Example 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](amazon-states-language-paths.md) 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
<a name="workflow-studio-process-output-resultselector"></a>

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.

**Example 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 verwenden`OutputPath`, um die zusätzlichen Metadaten herauszufiltern. Standardmäßig lautet der Wert des **OutputPath**Filters 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"
 }
}
```
Der `OutputPath` Filter ist der letzte Ausgabefilter, der wirksam wird. Wenn Sie also zusätzliche Ausgabefilter wie `ResultSelector` oder verwenden`ResultPath`, sollten Sie den Standardwert von `$.Payload` für den `OutputPath` Filter entsprechend ändern. 