Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Exécutez des tâches Amazon ECS ou Fargate avec Step Functions

Mode de mise au point
Exécutez des 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.

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écouvrez comment intégrer Step Functions à Amazon ECS ou Fargate pour exécuter et gérer des tâches. Dans Amazon ECS, une tâche est l'unité de calcul fondamentale. Les tâches sont définies par une définition de tâche qui indique comment un conteneur Docker doit être exécuté, notamment l'image du conteneur, les limites de processeur et de mémoire, la configuration réseau et d'autres paramètres. Cette page répertorie les actions d'API Amazon ECS disponibles et fournit des instructions sur la façon de transmettre des données à une tâche Amazon ECS à l'aide de Step Functions.

Pour en savoir plus sur l'intégration aux AWS services dans Step Functions, consultez Intégration des services etTransmission de paramètres à une API de service dans Step Functions.

Principales fonctionnalités de l'intégration optimisée entre Amazon ECS/Fargate
  • 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.

Amazon ECS/Fargate optimisé APIs

Paramètres dans 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

Pour en savoir plus sur l'intégration aux AWS services dans Step Functions, consultez Intégration des services etTransmission de paramètres à une API de service dans Step Functions.

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. Consultez 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é. Consultez Attendre un rappel avec un 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 } } }

Politiques IAM pour appeler Amazon ECS/AWS Fargate

Les exemples de modèles suivants montrent comment AWS Step Functions générer des politiques IAM en fonction des ressources contenues dans la définition de votre machine d'état. Pour plus d’informations, consultez Comment Step Functions génère des politiques IAM pour les services intégrés et Découvrez les modèles d'intégration des services dans Step Functions.

Comme la valeur de n'TaskIdest pas connue tant que la tâche n'est pas soumise, Step Functions crée une "Resource": "*" politique plus privilégiée.

Note

Vous ne pouvez arrêter que les tâches Amazon Elastic Container Service (Amazon ECS) lancées par Step Functions, malgré "*" la politique IAM.

Run a Job (.sync)

Ressources statiques

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:RunTask" ], "Resource": [ "arn:aws:ecs:[[region]]: [[accountId]]:task-definition/[[taskDefinition]]:[[revisionNumber]]" ] }, { "Effect": "Allow", "Action": [ "ecs:StopTask", "ecs:DescribeTasks" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:[[region]]: [[accountId]]:rule/StepFunctionsGetEventsForECSTaskRule" ] } ] }

Ressources dynamiques

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:RunTask", "ecs:StopTask", "ecs:DescribeTasks" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:[[region]]: [[accountId]]:rule/StepFunctionsGetEventsForECSTaskRule" ] } ] }
Request Response and Callback (.waitForTaskToken)

Ressources statiques

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:RunTask" ], "Resource": [ "arn:aws:ecs:[[region]]: [[accountId]]:task-definition/[[taskDefinition]]:[[revisionNumber]]" ] } ] }

Ressources dynamiques

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:RunTask" ], "Resource": "*" } ] }

Ressources statiques

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:RunTask" ], "Resource": [ "arn:aws:ecs:[[region]]: [[accountId]]:task-definition/[[taskDefinition]]:[[revisionNumber]]" ] }, { "Effect": "Allow", "Action": [ "ecs:StopTask", "ecs:DescribeTasks" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:[[region]]: [[accountId]]:rule/StepFunctionsGetEventsForECSTaskRule" ] } ] }

Ressources dynamiques

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:RunTask", "ecs:StopTask", "ecs:DescribeTasks" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:[[region]]: [[accountId]]:rule/StepFunctionsGetEventsForECSTaskRule" ] } ] }

Si vos tâches Amazon ECS planifiées nécessitent l'utilisation d'un rôle d'exécution de tâche, d'un rôle de tâche ou d'un remplacement de rôle de tâche, vous devez ajouter des iam:PassRole autorisations pour chaque rôle d'exécution de tâche, rôle de tâche ou remplacement de rôle de tâche au rôle CloudWatch Events IAM de l'entité appelante, qui est dans ce cas Step Functions.

Rubrique suivante :

Amazon EKS

Rubrique précédente :

Amazon DynamoDB
ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.