Démarrer les exécutions de flux de travail à partir d'un état de tâche - 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.

Démarrer les exécutions de flux de travail à partir d'un état de tâche

AWS Step Functions peut démarrer des exécutions de flux de travail directement à partir d'un état Task d'une machine d'état. 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 à l'aide de n'importe quel modèle d'intégration de service.

Astuce

Pour déployer un exemple de flux de travail imbriqué sur votreCompte AWS, consultez le 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 é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 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 :