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.
Commencer un nouveau AWS Step Functions machine à états à partir d'une exécution en cours
Step Functions intègre sa propre intégration API en tant que service. Apprenez à utiliser Step Functions pour démarrer une nouvelle exécution d'une machine à états directement à partir de l'état de la tâche d'une exécution en cours. Utilisez des exécutions de workflows imbriqués pour réduire la complexité de vos principaux workflows et réutiliser les processus courants lors de la création de nouveaux workflows.
Principales fonctionnalités de l'intégration d'Optimized Step Functions
Le modèle Exécuter une tâche (.sync) d'intégration est disponible.
Notez qu'il n'y a aucune optimisation pour les modèles d'Attendre un rappel avec un jeton de tâcheintégration Réponse à la requête ou.
Pour plus d’informations, consultez les ressources suivantes :
Step Functions prises en charge APIs
-
-
Paramètres pris en charge
Exemples de flux de travail
L'exemple suivant inclut un état Task
qui démarre l'exécution d'une autre machine d'état et attend qu'elle se termine.
{
"Type":"Task",
"Resource":"arn:aws:states:::states:startExecution.sync:2",
"Parameters":{
"Input":{
"Comment": "Hello world!"
},
"StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld",
"Name":"ExecutionName"
},
"End":true
}
L'exemple suivant inclut un état Task
qui démarre l'exécution d'une autre machine d'état.
{
"Type":"Task",
"Resource":"arn:aws:states:::states:startExecution",
"Parameters":{
"Input":{
"Comment": "Hello world!"
},
"StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld",
"Name":"ExecutionName"
},
"End":true
}
L'exemple suivant inclut un état Task
qui implémente le modèle d'intégration de service de rappel.
{
"Type":"Task",
"Resource":"arn:aws:states:::states:startExecution.waitForTaskToken",
"Parameters":{
"Input":{
"Comment": "Hello world!",
"token.$": "$$.Task.Token"
},
"StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld",
"Name":"ExecutionName"
},
"End":true
}
Pour associer une exécution de workflow imbriqué à l'exécution parent qui l'a démarrée, transmettez un paramètre spécialement nommé qui inclut l'ID d'exécution extrait de l'objet de contexte. Lorsque vous démarrez une exécution imbriquée, utilisez un paramètre nommé AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID
. 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
. Pour de plus amples informations, veuillez consulter Accès à l'objet de contexte.
{
"Type":"Task",
"Resource":"arn:aws:states:::states:startExecution.sync",
"Parameters":{
"Input":{
"Comment": "Hello world!",
"AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id"
},
"StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld",
"Name":"ExecutionName"
},
"End":true
}
Les machines d'état imbriquées renvoient les éléments suivants :
Ressource | Sortie |
---|---|
startExecution.sync | Chaîne |
startExecution.sync : 2 | JSON |
Ces deux éléments attendent que la machine d'état imbriquée se termine, mais renvoient des formats Output
différents. Par exemple, si vous créez une fonction Lambda qui renvoie l'objet{ "MyKey": "MyValue" }
, vous obtiendrez les réponses suivantes :
Pour startExecution .sync :
{
<other fields>
"Output": "{ \"MyKey\": \"MyValue\" }"
}
Pour startExecution .sync:2 :
{
<other fields>
"Output": {
"MyKey": "MyValue"
}
}
Configuration des IAM autorisations pour les machines à états imbriqués
Une machine d'état parent détermine si une machine d'état enfant a terminé son exécution à l'aide d'interrogations et d'événements. Le sondage nécessite une autorisation, states:DescribeExecution
tandis que les événements envoyés EventBridge à Step Functions nécessitent des autorisations pour events:PutTargets
events:PutRule
, etevents:DescribeRule
. Si ces autorisations ne sont pas associées à votre IAM rôle, il se peut qu'un délai s'écoule avant qu'une machine à état parent ne soit informée de la fin de l'exécution de la machine à état enfant.
Pour une machine à états nécessitant l'exécution d'un seul flux de travail imbriqué, utilisez une IAM politique qui limite les autorisations accordées à cette machine à états. StartExecution
Pour plus d'informations, consultez IAMles autorisations pour Step Functions.
IAMpolitiques pour appeler des flux de travail Step Functions imbriqués
Pour une machine à états nécessitant l'exécution d'un seul flux de travail imbriqué, utilisez une IAM politique qui limite les autorisations accordées à cette machine à états. StartExecution
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"states:StartExecution"
],
"Resource": [
"arn:aws:states:[[region]]
:[[accountId]]
:stateMachine:[[stateMachineName]]
"
]
}
]
}
Pour plus d’informations, consultez les ressources suivantes :
Pour de plus amples informations sur les exécutions de workflows imbriqués, veuillez consulter Lancer des exécutions de flux de travail à partir d'un état de tâche dans Step Functions.