Lancer des exécutions de flux de travail à partir d'un état de tâche dans Step Functions - 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.

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'StartExecutionAPIaction 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 :