Gérez les tâches Amazon ECS ou Fargate avec 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.

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:runTaskpeut renvoyer une réponse HTTP 200, mais avoir un Failures 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 une AmazonECS.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'startSyncExecutionaction d'API, vous spécifiez des paramètres PascalCase dans, tels que :. StateMachineArn

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.