

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Configurer les entrées et sorties d'états avec Workflow Studio dans Step Functions
<a name="workflow-studio-process"></a>

**Gestion de l'état et transformation des données**  
Découvrez comment [transmettre des données entre états à l'aide de variables](workflow-variables.md) et [transformer des données avec JSONata](transforming-data.md).

Chaque État prend une décision ou exécute une action en fonction des informations qu'il reçoit. Dans la plupart des cas, il transmet ensuite la sortie à d'autres états. Dans Workflow Studio, vous pouvez configurer la manière dont un état filtre et manipule ses données d'entrée et de sortie dans les onglets **Entrée** et **Sortie** du [Panneau Inspector](workflow-studio.md#workflow-studio-components-formdefinition) panneau. Utilisez les liens **Info** pour accéder à l'aide contextuelle lors de la configuration des entrées et des sorties. 

![\[Capture d'écran illustrant les entrées d'état, les sorties et le panneau d'aide aux informations\]](http://docs.aws.amazon.com/fr_fr/step-functions/latest/dg/images/wfs_input_output_01.png)


Pour des informations détaillées sur la façon dont Step Functions traite les entrées et les sorties, consultez[Traitement des entrées et des sorties dans Step Functions](concepts-input-output-filtering.md). 

## Configuration de l'entrée dans un état
<a name="workflow-studio-process-input"></a>

Chaque état reçoit les entrées de l'état précédent au format JSON. Si vous souhaitez filtrer l'entrée, vous pouvez utiliser le `InputPath` filtre sous l'onglet **Entrée** du [Panneau Inspector](workflow-studio.md#workflow-studio-components-formdefinition) panneau. `InputPath`Il s'agit d'une chaîne commençant par`$`, qui identifie un nœud JSON spécifique. Ils sont appelés [chemins de référence](amazon-states-language-paths.md), et ils suivent JsonPath la syntaxe. 

Pour filtrer l'entrée, procédez comme suit :
+ Choisissez **Filtrer l'entrée avec InputPath**.
+ Entrez une valeur valide [JsonPath](https://datatracker.ietf.org/wg/jsonpath/about/)pour le `InputPath` filtre. Par exemple, **\$1.data**.

Votre `InputPath` filtre sera ajouté à votre flux de travail.

**Example Exemple 1 : utilisation d'un InputPath filtre dans Workflow Studio**  
Supposons que l'entrée de votre état inclut les données JSON suivantes.  

```
{
  "comment": "Example for InputPath",
  "dataset1": {
    "val1": 1,
    "val2": 2,
    "val3": 3
  },
  "dataset2": {
    "val1": "a",
    "val2": "b",
    "val3": "c"
  }
}
```
Pour appliquer le `InputPath` filtre, choisissez **Filtrer l'entrée avec InputPath**, puis entrez le chemin de référence approprié. Si vous entrez**\$1.dataset2.val1**, le JSON suivant est transmis en entrée à l'état.  

```
{"a"}
```
Un chemin de référence peut également comporter une sélection de valeurs. Si les données auxquelles vous faites référence le sont `{ "a": [1, 2, 3, 4] }` et que vous appliquez le chemin de référence `$.a[0:2]` comme `InputPath` filtre, voici le résultat.  

```
[ 1, 2 ]
```

[État du flux de travail parallèle](state-parallel.md),[État du flux de travail cartographique](state-map.md), et les états de [Passer l'état du flux de travail](state-pass.md) flux disposent d'une option de filtrage d'entrée supplémentaire appelée `Parameters` sous leur onglet **Entrée**. Ce filtre prend effet après le InputPath filtre et peut être utilisé pour créer un objet JSON personnalisé composé d'une ou de plusieurs paires clé-valeur. Les valeurs de chaque paire peuvent être soit des valeurs statiques, soit être sélectionnées à partir de l'entrée, soit être sélectionnées à partir du [Accès aux données d'exécution depuis l'objet Context dans Step Functions](input-output-contextobject.md) chemin. 

**Note**  
Pour spécifier qu'un paramètre utilise un chemin de référence pour pointer vers un nœud JSON en entrée, le nom du paramètre doit se terminer par`.$`.

**Example Exemple 2 : créer une entrée JSON personnalisée pour l'état parallèle**  
Supposons que les données JSON suivantes soient l'entrée d'un état parallèle.  

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

Pour sélectionner une partie de cette entrée et transmettre des paires clé-valeur supplémentaires avec une valeur statique, vous pouvez spécifier ce qui suit dans le champ **Paramètres**, sous l'onglet **Entrée** de l'état **parallèle**.

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

Les données JSON suivantes seront le résultat.

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

## Configuration de la sortie d'un état
<a name="workflow-studio-process-output"></a>

Chaque état produit une sortie JSON qui peut être filtrée avant d'être passée à l'état suivant. Plusieurs filtres sont disponibles, et chacun affecte le résultat d'une manière différente. Les filtres de sortie disponibles pour chaque état sont répertoriés sous l'onglet **Output** du panneau **Inspector**. Pour [État du flux de travail des tâches](state-task.md) les états, tous les filtres de sortie que vous sélectionnez sont traités dans cet ordre : 

1.  `ResultSelector`: utilisez ce filtre pour manipuler le résultat de l'état. Vous pouvez créer un nouvel objet JSON avec des parties du résultat. 

1.  `Spécification de la sortie d'état à l'aide ResultPath de in Step Functions`: utilisez ce filtre pour sélectionner une combinaison entre l'entrée d'état et le résultat de la tâche à transmettre à la sortie. 

1.  `Filtrer la sortie d'état à l'aide OutputPath`: utilisez ce filtre pour filtrer la sortie JSON afin de choisir les informations du résultat qui seront transmises à l'état suivant. 

### Utiliser ResultSelector
<a name="workflow-studio-process-output-resultselector"></a>

`ResultSelector`est un filtre de sortie facultatif pour les états suivants :
+  [État du flux de travail des tâches](state-task.md)états, qui sont tous les états répertoriés dans l'onglet **Actions** du[Navigateur d'états](workflow-studio.md#workflow-studio-components-states). 
+  [État du flux de travail cartographique](state-map.md)états, dans l'onglet **Flow** du navigateur States. 
+  [État du flux de travail parallèle](state-parallel.md)états, dans l'onglet **Flow** du navigateur States. 

`ResultSelector`peut être utilisé pour construire un objet JSON personnalisé composé d'une ou de plusieurs paires clé-valeur. Les valeurs de chaque paire peuvent être des valeurs statiques ou sélectionnées à partir du résultat de l'état avec un chemin. 

**Note**  
Pour spécifier qu'un paramètre utilise un chemin pour référencer un nœud JSON dans le résultat, le nom du paramètre doit se terminer par`.$`.

**Example Exemple d'utilisation du ResultSelector filtre**  
Dans cet exemple, vous pouvez `ResultSelector` manipuler la réponse de l'appel d' CreateCluster API Amazon EMR pour un état Amazon EMR. `CreateCluster` Voici le résultat de l'appel d'`CreateCluster`API Amazon EMR.  

```
{
  "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"
  }
}
```
Pour sélectionner une partie de ces informations et transmettre une paire clé-valeur supplémentaire avec une valeur statique, spécifiez ce qui suit dans le **ResultSelector**champ, sous l'onglet **Sortie** de l'État.  

```
{
 "result": "found",
 "ClusterId.$": "$.output.ClusterId", 
 "ResourceType.$": "$.resourceType"
 }
```
L'utilisation `ResultSelector` produit le résultat suivant.  

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

### Utiliser ResultPath
<a name="workflow-studio-process-output-resultpath"></a>

La sortie d'un état peut être une copie de son entrée, le résultat qu'il produit ou une combinaison de son entrée et de son résultat. Utilisez `ResultPath` pour contrôler les combinaisons de ces stratégies transmises à la sortie de l'état. Pour d'autres cas d'utilisation de`ResultPath`, voir[Spécification de la sortie d'état à l'aide ResultPath de in Step Functions](input-output-resultpath.md).

`ResultPath`est un filtre de sortie facultatif pour les états suivants :
+  [État du flux de travail des tâches](state-task.md)états, qui sont tous les états répertoriés dans l'onglet **Actions** du navigateur d'états. 
+  [État du flux de travail cartographique](state-map.md)états, dans l'onglet **Flow** du navigateur States. 
+  [État du flux de travail parallèle](state-parallel.md)états, dans l'onglet **Flow** du navigateur States. 
+  [Passer l'état du flux de travail](state-pass.md)états, dans l'onglet **Flow** du navigateur States. 

`ResultPath`peut être utilisé pour ajouter le résultat dans l'entrée d'état d'origine. Le chemin spécifié indique où ajouter le résultat.

**Example Exemple d'utilisation du ResultPath filtre**  
Supposons que ce qui suit soit l'entrée d'un état de tâche.  

```
{
  "details": "Default example",
  "who": "AWS Step Functions"
}
```
Le résultat de l'état de la tâche est le suivant.  

```
Hello, AWS Step Functions
```
Vous pouvez ajouter ce résultat à l'entrée de l'état en appliquant `ResultPath` et en saisissant un [chemin](amazon-states-language-paths.md) de référence indiquant où ajouter le résultat, tel que `$.taskresult` :  
Avec cela`ResultPath`, voici le JSON qui est transmis comme sortie de l'état.  

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

### Utiliser OutputPath
<a name="workflow-studio-process-output-resultselector"></a>

Le `OutputPath` filtre vous permet de filtrer les informations indésirables et de ne transmettre que la partie du JSON dont vous avez besoin. `OutputPath`Il s'agit d'une chaîne, commençant par`$`, qui identifie les nœuds dans le texte JSON.

**Example Exemple d'utilisation du OutputPath filtre**  
Imaginez qu'un appel d'API Lambda Invoke renvoie des métadonnées en plus du résultat de la fonction Lambda.  

```
{
  "ExecutedVersion": "$LATEST",
  "Payload": {
     "foo": "bar",
     "colors": [
          "red",
          "blue",
          "green"    
     ],
     "car": {
          "year": 2008,
          "make": "Toyota",
          "model": "Matrix"
     }
   },
"SdkHttpMetadata": {
  "AllHttpHeaders": {
    "X-Amz-Executed-Version": ["$LATEST"]
...
```
Vous pouvez l'`OutputPath`utiliser pour filtrer les métadonnées supplémentaires. Par défaut, la valeur du **OutputPath**filtre pour les états Lambda Invoke créés via le Workflow Studio est. `$.Payload` Cette valeur par défaut supprime les métadonnées supplémentaires et renvoie une sortie équivalente à l'exécution directe de la fonction Lambda.  
L'exemple de résultat de la tâche Lambda Invoke et la valeur de `$.Payload` pour le filtre de **sortie** transmettent les données JSON suivantes en sortie.  

```
{
 "foo": "bar",
 "colors": [
      "red",
      "blue",
      "green"    
 ],
 "car": {
      "year": 2008,
      "make": "Toyota",
      "model": "Matrix"
 }
}
```
Le `OutputPath` filtre est le dernier filtre de sortie à prendre effet. Par conséquent, si vous utilisez des filtres de sortie supplémentaires tels que `ResultSelector` ou`ResultPath`, vous devez modifier la valeur par défaut du `$.Payload` `OutputPath` filtre en conséquence. 