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.
Structure des machines à états dans Amazon States Language pour les flux de travail Step Functions
Les machines à états sont définies à l'aide d'un JSON texte qui représente une structure contenant les champs suivants.
-
Comment
(facultatif) -
Une description lisible de la machine d'état.
-
StartAt
(Obligatoire) -
Une chaîne qui doit correspondre exactement (sensible à la casse) au nom de l'un des objets d'état.
TimeoutSeconds
(Facultatif)-
Le nombre maximal de secondes durant lequel une machine d'état peut être exécutée. Si elle dure plus longtemps que la durée spécifiée, l'exécution échoue avec un nom States.Timeout d'erreur.
-
Version
(facultatif) -
Version de l'Amazon States Language utilisée dans la machine à états (la valeur par défaut est « 1.0 »).
-
States
(Obligatoire) -
Objet contenant un ensemble d'états séparés par des virgules.
Le champ States
contient States.
{
"State1" : {
},
"State2" : {
},
...
}
Une machine d'état est définie par les états qu'elle contient et les relations entre ceux-ci.
Voici un exemple.
{
"Comment": "A Hello World example of the Amazon States Language using a Pass state",
"StartAt": "HelloWorld",
"States": {
"HelloWorld": {
"Type": "Pass",
"Result": "Hello World!",
"End": true
}
}
}
Lorsqu'une exécution de cette machine d'état est lancée, le système commence par l'état référencé dans le champ StartAt
("HelloWorld"
). Si cet état a un champ "End": true
, l'exécution s'arrête et renvoie un résultat. Dans le cas contraire, le système recherche un champ "Next":
et continue avec cet état. Ce processus se répète jusqu'à ce que le système atteigne un état terminal (un état avec "Type": "Succeed"
, "Type": "Fail"
ou "End": true
) ou jusqu'à ce qu'une erreur d'exécution se produise.
Les règles suivantes s'appliquent aux états au sein d'une machine d'état :
-
Les états peuvent se produire dans n'importe quel ordre dans le bloc de délimitation, mais l'ordre dans lequel ils sont répertoriés n'affecte pas l'ordre dans lequel ils sont exécutés, qui est déterminé par le contenu des états eux-mêmes. Cet ordre est déterminé par le contenu des états.
-
Dans une machine d'état, il ne peut y avoir qu'un seul état désigné comme l'état
start
, désigné par la valeur du champStartAt
de la structure de niveau supérieur. Cet état est celui qui est exécuté en premier lorsque l'exécution commence. -
Tout état dont le champ
End
est défini surtrue
est considéré comme un étatend
(outerminal
). Selon la logique de votre machine à états (par exemple, si votre machine à états possède plusieurs branches d'exécution), il se peut que vous ayez plusieurs états.end
-
Si votre machine d'état est composée d'un seul état, il peut s'agir de
start
et deend
.
Champs d'état courants dans les flux de travail
Les champs suivants sont communs à tous les éléments de l'état.
-
Type
(Obligatoire) -
Type de l'état.
-
Next
-
Nom de l'état suivant qui sera exécuté lorsque l'état actuel sera terminé. Certains types d'états, par exemple
Choice
, permettent plusieurs états de transition.Si l'état actuel est le dernier état de votre flux de travail, ou un état terminal, tel que État du flux de travail réussi ouÉtat du flux de travail défaillant, vous n'avez pas besoin de spécifier le
Next
champ. -
End
-
Désigne cet état comme un état terminal (il termine l'exécution) s'il est défini sur
true
. Il peut y avoir n'importe quel nombre d'états terminaux par machine d'état. Un seul parmiNext
ouEnd
peut être utilisé dans un état. Certains types d'états, tels queChoice
, ou les états terminaux, tels que État du flux de travail réussi etÉtat du flux de travail défaillant, ne prennent pas en charge ou n'utilisent pas leEnd
champ. -
Comment
(facultatif) -
Contient une description lisible de l'état.
-
InputPath
(facultatif) -
Un chemin sélectionne une partie de l'entrée de l'état à transmettre à la tâche de l'état pour traitement. S'il est omis, il a la valeur
$
qui désigne l'entrée complète. Pour plus d'informations, consultez Traitement des entrées et des sorties. -
OutputPath
(facultatif) -
Un chemin qui sélectionne une partie de la sortie de l'état à transmettre à l'état suivant. S'il est omis, il possède la valeur
$
qui désigne l'ensemble de la sortie. Pour plus d'informations, consultez Traitement des entrées et des sorties.