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.
ItemSelector
Par défaut, l'entrée effective pour l'Map
état est l'ensemble des éléments de données individuels présents dans l'entrée d'état brut. Le ItemSelector
champ vous permet de remplacer les valeurs des éléments de données avant qu'elles ne soient transmises à l'Map
état. Pour remplacer les valeurs, spécifiez une entrée JSON valide contenant une collection de paires clé-valeur. Ces paires peuvent être des valeurs statiques fournies dans la définition de votre machine d'état, des valeurs sélectionnées dans l'entrée d'état à l'aide d'un chemin ou des valeurs accessibles depuis l'objet de contexte.
Si vous spécifiez des paires clé-valeur à l'aide d'un chemin ou d'un objet de contexte, le nom de la clé doit se terminer par. .$
Note
Le ItemSelector
champ remplace le Parameters
champ au sein de l'Map
état. Si vous utilisez le Parameters
champ dans vos définitions d'Map
état pour créer une entrée personnalisée, nous vous recommandons vivement de le remplacer parItemSelector
.
Vous pouvez spécifier le ItemSelector
champ à la fois dans un état de carte en ligne et dans un état de carte distribuée.
Par exemple, considérez l'entrée JSON suivante qui contient un tableau de trois éléments au sein du imageData
nœud. Pour chaque itération d'Map
état, un élément de tableau est transmis à l'itération en tant qu'entrée.
[
{
"resize": "true",
"format": "jpg"
},
{
"resize": "false",
"format": "png"
},
{
"resize": "true",
"format": "jpg"
}
]
À l'aide du ItemSelector
champ, vous pouvez définir une entrée JSON personnalisée pour remplacer l'entrée d'origine, comme indiqué dans l'exemple suivant. Step Functions transmet ensuite cette entrée personnalisée à chaque itération Map
d'état. L'entrée personnalisée contient une valeur statique pour size
et la valeur d'un objet de contexte, des données pour Map
l'état. L'objet de $$.Map.Item.Value
contexte contient la valeur de chaque élément de données individuel.
{
"ItemSelector": {
"size": 10,
"value.$": "$$.Map.Item.Value"
}
}
L'exemple suivant montre l'entrée reçue par une itération de l'état de la carte en ligne :
{
"size": 10,
"value": {
"resize": "true",
"format": "jpg"
}
}
Astuce
Pour un exemple complet d'état de carte distribuée utilisant le ItemSelector
champ, reportez-vous à la sectionCommencer à utiliser Distributed Map State.