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.
AWS Step Functions peut démarrer des exécutions de flux de travail directement à partir de Task
l'état d'une machine à états. Cela vous permet de diviser vos flux de travail en machines d'état plus petites et de démarrer l’exécution de ces machines d'état. En démarrant ces nouvelles exécutions de flux de travail, vous pouvez :
-
Séparer un flux de travail de niveau supérieur des flux de travail de niveau inférieur et spécifiques aux tâches.
-
Éviter les éléments répétitifs en appelant plusieurs fois une machine d'état distincte.
-
Créer une bibliothèque de flux de travail modulaires réutilisables pour un développement plus rapide.
-
Réduire la complexité et simplifier la modification et le dépannage des machines d'état.
Step Functions peut démarrer ces exécutions de flux de travail en appelant sa propre API en tant que service intégré. Il vous suffit d'appeler l'action d'API StartExecution
à partir de votre état Task
et de transmettre les paramètres nécessaires. Vous pouvez appeler l'API Step Functions en utilisant n'importe quel modèle d'intégration de service.
Astuce
Pour déployer un exemple de flux de travail imbriqué, consultez la section Optimisation des coûts
Pour démarrer une nouvelle exécution d'une machine à états, utilisez un Task
état similaire à l'exemple suivant :
{
"Type":"Task",
"Resource":"arn:aws:states:::states:startExecution",
"Parameters":{
"StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld",
"Input":{
"Comment":"Hello world!"
},
},
"Retry":[
{
"ErrorEquals":[
"StepFunctions.ExecutionLimitExceeded"
]
}
],
"End":true
}
Cet état Task
démarre une nouvelle exécution de la machine d'état HelloWorld
et transmet le commentaire JSON en tant qu'entrée.
Note
Les quotas d'action d'API StartExecution
peuvent réduire le nombre d'exécutions que vous pouvez démarrer. Utilisez Retry
sur StepFunctions.ExecutionLimitExceeded
pour vous assurer que votre exécution a démarré. Consultez les rubriques suivantes.
Exécution de flux de travail associés
Pour associer une exécution de flux de travail démarrée à l'exécution qui l'a lancée, transmettez l'ID d'exécution de l'objet Context à l'entrée d'exécution. Vous pouvez accéder à l'ID depuis l'objet Context depuis votre Task
état lors d'une exécution en cours. Transmettez l'ID d'exécution en l'ajoutant .$
au nom du paramètre et en faisant référence à l'ID dans l'objet Context avec. $$.Execution.Id
"AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id"
Vous pouvez utiliser un paramètre spécial nommé AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID
lorsque vous démarrez une exécution. Si elle est incluse, cette association fournit des liens dans la section Détails des étapes de la console Step Functions. Dans ce cas, vous pouvez facilement suivre les exécutions de vos flux de travail, du démarrage à l’exécution. À l'aide de l'exemple précédent, associez l'ID d'exécution à l'exécution démarrée de la machine d'état HelloWorld
comme suit.
{
"Type":"Task",
"Resource":"arn:aws:states:::states:startExecution",
"Parameters":{
"StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld",
"Input": {
"Comment": "Hello world!",
"AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id"
}
},
"End":true
}
Pour plus d’informations, consultez les ressources suivantes :