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.
Gérez les tâches Amazon ECS ou Fargate avec Step Functions
Step Functions peut contrôler certains AWS services directement depuis Amazon States Language (ASL). Pour en savoir plus, consultez Utilisation avec d'autres services et Transmettre des paramètres à une API de service.
En quoi l'intégration optimisée Amazon ECS/Fargate est différente de l'intégration Amazon ECS ou Fargate SDK AWS
-
Le modèle Exécuter une tâche (.sync) d'intégration est pris en charge.
ecs:runTask
peut renvoyer une réponse HTTP 200, mais avoir unFailures
champ non vide comme suit :Demande de réponse : renvoie la réponse et n'échoue pas à la tâche. Cela revient à ne pas optimiser.
Exécuter un Job ou un jeton de tâche : si un
Failures
champ non vide est détecté, la tâche échoue avec uneAmazonECS.Unknown
erreur.
API et syntaxe Amazon ECS/Fargate prises en charge :
Les paramètres in Step Functions sont exprimés en PascalCase
Même si l'API de service native se trouve dans CamelCase, par exemple l'startSyncExecution
action d'API, vous spécifiez des paramètres PascalCase dans, tels que :. StateMachineArn
-
RunTask
démarre une nouvelle tâche à l'aide de la définition de tâche spécifiée.
Transmission de données à une tâche Amazon ECS
Step Functions peut contrôler certains AWS services directement depuis Amazon States Language (ASL). Pour en savoir plus, consultez Utilisation avec d'autres services et Transmettre des paramètres à une API de service.
Vous pouvez l'utiliser overrides
pour remplacer la commande par défaut d'un conteneur et transmettre des données à vos tâches Amazon ECS. veuillez consulter ContainerOverride
. Dans l'exemple, nous avons utilisé JsonPath pour transmettre des valeurs Task
de l'entrée à l'Task
état.
Ce qui suit inclut un Task
état qui exécute une tâche Amazon ECS et attend qu'elle soit terminée.
{
"StartAt": "Run an ECS Task and wait for it to complete",
"States": {
"Run an ECS Task and wait for it to complete": {
"Type": "Task",
"Resource": "arn:aws:states:::ecs:runTask.sync",
"Parameters": {
"Cluster": "cluster-arn
",
"TaskDefinition": "job-id
",
"Overrides": {
"ContainerOverrides": [
{
"Name": "container-name
",
"Command.$": "$.commands"
}
]
}
},
"End": true
}
}
}
La ligne "Command.$": "$.commands"
dans ContainerOverrides
passe les commandes de l'entrée d'état au conteneur.
Pour l'exemple précédent, chacune des commandes sera passée comme un remplacement de conteneur si l'entrée de l'exécution est la suivante :
{
"commands": [
"test command 1",
"test command 2",
"test command 3"
]
}
Ce qui suit inclut un Task
état qui exécute une tâche Amazon ECS, puis attend que le jeton de tâche soit renvoyé. veuillez consulter Attendre un rappel avec le jeton de tâche.
{
"StartAt":"Manage ECS task",
"States":{
"Manage ECS task":{
"Type":"Task",
"Resource":"arn:aws:states:::ecs:runTask.waitForTaskToken",
"Parameters":{
"LaunchType":"FARGATE",
"Cluster":"cluster-arn
",
"TaskDefinition":"job-id
",
"Overrides":{
"ContainerOverrides":[
{
"Name":"container-name
",
"Environment":[
{
"Name":"TASK_TOKEN_ENV_VARIABLE",
"Value.$":"$$.Task.Token"
}
]
}
]
}
},
"End":true
}
}
}
Pour plus d'informations sur la configuration IAM des autorisations lors de l'utilisation Step Functions avec d'autres AWS services, consultezPolitiques IAM pour les services intégrés.