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.
Lancer des exécutions de flux de travail à partir d'un état de tâche dans Step Functions
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 faisant appel au sien API en tant que service intégré. Appelez simplement l'StartExecution
APIaction depuis votre Task
État et transmettez les paramètres nécessaires. Vous pouvez appeler les Step Functions API en utilisant n'importe quel modèle d'intégration de services.
Astuce
Pour déployer un exemple de flux de travail imbriqué sur votre Compte AWS, voir Module 13 - Flux de travail express imbriqués
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 Task
état lancera une nouvelle exécution de la machine à HelloWorld
états et transmettra le JSON commentaire en entrée.
Note
Les quotas StartExecution
API d'actions peuvent limiter 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 démarrée, transmettez l'ID d'exécution de l' objet de contexte à l'entrée d'exécution. Vous pouvez accéder à l'ID depuis l'objet de contexte de votre état Task
dans une exécution en cours d'exécution. Transmettez l'ID d'exécution en ajoutant .$
au nom du paramètre et en référençant l'ID dans l'objet de contexte 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 :