Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

État du flux de travail de choix

Mode de mise au point
État du flux de travail de choix - AWS Step Functions

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.

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.

Gestion de l'état et transformation des données

Un Choice state ("Type": "Choice") ajoute une logique conditionnelle à une machine à états.

Outre la plupart des champs d'état courants, les Choice états contiennent les champs supplémentaires suivants.

Choices (Obligatoire)

Tableau des règles Choice qui détermine quel est l'état suivant de la machine d'état.

Lorsqu'un Choice état est exécuté, il attribue à chaque règle de choix la valeur vraie ou fausse. Sur la base du résultat de cette évaluation, Step Functions passe à l'état suivant du flux de travail.

Vous devez définir au moins une règle dans l'ChoiceÉtat.

Default (Facultatif, Recommandé)

Nom de l'état auquel passer si aucune des transitions de Choices n'a été prise.

Important

Les états Choice ne prennent pas en charge le champ End. De plus, ils utilisent Next uniquement dans le champ Choices.

Règles de choix (JSONata)

Un Choice état doit avoir un Choices champ dont la valeur est un tableau non vide de règles de choix, qui contient les champs suivants lors de l'utilisation JSONata :

  • Conditionfield : JSONata expression dont la valeur est vrai/faux.

  • Nextfield : valeur qui doit correspondre à un nom d'état dans la machine à états.

L'exemple suivant vérifie si la valeur numérique est égale à 1.

{ "Condition": "{% $foo = 1 %}", "Next": "NumericMatchState" }

L'exemple suivant vérifie si la type variable est égale àlocal.

{ "Condition": "{% $type = 'local' %}", "Next": "StringMatchState" }

L'exemple suivant vérifie si la chaîne est supérieure à MyStringABC.

{ "Condition": "{% $foo > 'MyStringABC' %}", "Next": "StringGreaterMatchState" }

L'exemple suivant vérifie si la chaîne n'est pas nulle.

{ "Condition" : "{% $possiblyNullValue != null and $possiblyNullValue = 42 %}", "Next": "NotNullAnd42" }

Règles de choix (JSONPath)

Un Choice état doit avoir un Choices champ dont la valeur est un tableau non vide de règles de choix, qui contient les champs suivants lors de l'utilisation JSONPath :

  • Une comparaison : deux champs qui spécifient une variable d'entrée à comparer, le type de comparaison et la valeur à laquelle comparer la variable. Les règles de choix permettent de comparer deux variables. Dans une règle de choix, la valeur d'une variable peut être comparée à une autre valeur de l'entrée d'état en ajoutant Path au nom des opérateurs de comparaison pris en charge. Les valeurs des champs Variable et Chemin d'une comparaison doivent être des chemins de référence valides.

  • Un Nextchamp — La valeur de ce champ doit correspondre à un nom d'état dans la machine à états.

L'exemple suivant vérifie si la valeur numérique est égale à 1.

{ "Variable": "$.foo", "NumericEquals": 1, "Next": "FirstMatchState" }

L'exemple suivant vérifie si la chaîne est égale à MyString.

{ "Variable": "$.foo", "StringEquals": "MyString", "Next": "FirstMatchState" }

L'exemple suivant vérifie si la chaîne est supérieure à MyStringABC.

{ "Variable": "$.foo", "StringGreaterThan": "MyStringABC", "Next": "FirstMatchState" }

L'exemple suivant vérifie si la chaîne est nulle.

{ "Variable": "$.possiblyNullValue", "IsNull": true }

L'exemple suivant montre comment la StringEquals règle n'est évaluée que lorsqu'elle $.keyThatMightNotExist existe en raison de la règle de IsPresent choix précédente.

"And": [ { "Variable": "$.keyThatMightNotExist", "IsPresent": true }, { "Variable": "$.keyThatMightNotExist", "StringEquals": "foo" } ]

L'exemple suivant vérifie si un modèle comportant un caractère générique correspond.

{ "Variable": "$.foo", "StringMatches": "log-*.txt" }

L'exemple suivant vérifie si l'horodatage est égal à 2001-01-01T12:00:00Z.

{ "Variable": "$.foo", "TimestampEquals": "2001-01-01T12:00:00Z", "Next": "FirstMatchState" }

L'exemple suivant compare une variable avec une autre valeur de l'entrée d'état.

{ "Variable": "$.foo", "StringEqualsPath": "$.bar" }

Step Functions examine chacune des règles de choix dans l'ordre indiqué dans le Choices champ. Ensuite, il passe à l'état spécifié dans le champ Next de la première règle Choice dans lequel la variable correspond à la valeur en fonction de l'opérateur de comparaison.

Les opérateurs de comparaison suivants sont pris en charge :

  • And

  • BooleanEquals,BooleanEqualsPath

  • IsBoolean

  • IsNull

  • IsNumeric

  • IsPresent

  • IsString

  • IsTimestamp

  • Not

  • NumericEquals,NumericEqualsPath

  • NumericGreaterThan,NumericGreaterThanPath

  • NumericGreaterThanEquals,NumericGreaterThanEqualsPath

  • NumericLessThan,NumericLessThanPath

  • NumericLessThanEquals,NumericLessThanEqualsPath

  • Or

  • StringEquals,StringEqualsPath

  • StringGreaterThan,StringGreaterThanPath

  • StringGreaterThanEquals,StringGreaterThanEqualsPath

  • StringLessThan,StringLessThanPath

  • StringLessThanEquals,StringLessThanEqualsPath

  • StringMatches

  • TimestampEquals,TimestampEqualsPath

  • TimestampGreaterThan,TimestampGreaterThanPath

  • TimestampGreaterThanEquals,TimestampGreaterThanEqualsPath

  • TimestampLessThan,TimestampLessThanPath

  • TimestampLessThanEquals,TimestampLessThanEqualsPath

Pour chacun de ces opérateurs, la valeur correspondante doit être du type approprié : chaîne, nombre, booléen ou horodatage. Step Functions n'essaie pas de faire correspondre un champ numérique à une valeur de chaîne. Cependant, étant donné que les champs d'horodatage sont logiquement des chaînes, il est possible qu'un champ considéré comme un horodatage puisse être rapproché par un comparateur StringEquals.

Note

Pour l'interopérabilité, ne supposez pas que les comparaisons numériques fonctionnent avec des valeurs en dehors de l'ampleur ou de la précision représentée par le type de données IEEE 754-2008 binary64. Notez plus particulièrement que les entiers en dehors de la plage [-253+1, 253-1] ne pourront pas être comparés comme prévu.

Les horodatages (par exemple2016-08-18T17:33:00Z) doivent être conformes au RFC3339 profil ISO 8601, avec d'autres restrictions :

  • Un T majuscule doit séparer les parties date et heure.

  • Un Z majuscule doit indiquer qu'un décalage de fuseau horaire numérique n'est pas présent.

Pour comprendre le comportement des comparaisons de chaînes, consultez la documentation JavacompareTo.

Les valeurs des opérateurs And et Or doivent être des tableaux non vides de règles Choice qui ne doivent pas elles-mêmes contenir des champs Next. De la même manière, la valeur d'un opérateur Not doit être une seule règle Choice qui ne doit pas contenir de champs Next.

Vous pouvez créer des règles Choice imbriquées complexes à l'aide de And, Not et Or. Toutefois, le champ Next peut s'afficher uniquement dans une règle Choice de niveau supérieur.

La comparaison de chaînes par rapport à des modèles comportant un ou plusieurs caractères génériques (« * ») peut être effectuée à l'aide de l'opérateur de StringMatches comparaison. Le caractère générique est évité en utilisant le standard. \\ (Ex: “\\*”) Aucun caractère autre que « * » n'a de signification particulière lors de la mise en correspondance.

Rubrique suivante :

Parallèle

Rubrique précédente :

Tâche
ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.