Comment puis-je résoudre les problèmes d’identification pour les tâches Amazon ECS ?

Lecture de 7 minute(s)
0

Je souhaite résoudre les problèmes liés aux identifications de tâches Amazon Elastic Container Service (Amazon ECS).

Résolution

Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l’AWS CLI.

Lorsque vous définissez des identifications de tâche dans Amazon ECS, vous pouvez rencontrer les problèmes suivants :

  • La propagation des identifications aux tâches à partir du service ou de la définition de tâche ne s’exécute pas.
  • Le format d'ARN et d'ID de ressource pour vos identifications est obsolète.
  • L’absence d’autorisations AWS Identity and Access Management (IAM) ou les restrictions d’identification vous empêchent d’ajouter des identifications aux ressources ECS.
  • Les identifications Amazon ECS ne sont pas visibles sur la page de facturation de la console AWS Billings and Cost Management.

Utiliser le paramètre PropagateTags pour une propagation à partir du service ou de la définition de tâche

Le paramètre PropagateTags n'est pas activé par défaut. Pour copier les identifications de la définition de tâche ou du service vers la tâche, activez PropagateTags. Vous pouvez copier les identifications lorsque vous exécutez une tâche, créez ou mettez à jour un service.

Remarque : Dans les commandes suivantes, remplacez servicename par le nom de votre service, clustername par le nom de votre cluster et region par votre région AWS. Remplacez également taskdefinitionname par le nom de votre définition de tâche et taskdefinitionversion par la version de votre définition de tâche.

Pour vérifier si PropagateTags est activé dans un service spécifique, exécutez la commande describe-services suivante :

aws ecs describe-services --services servicename --cluster clustername --region region --query 'services[*].propagateTags' --output text

Pour activer la propagation des identifications pour une nouvelle tâche autonome, exécutez la commande run-task suivante :

aws ecs run-task --cluster clustername --task-definition taskdefinitionname:taskdefinitionversion --launch-type FARGATE/EC2 --propagate-tags TASK_DEFINITION/SERVICE

Pour activer la propagation des identifications pour un nouveau service, exécutez la commande create-service suivante :

aws ecs create-service --cluster clustername --service-name servicename --task-definition taskdefinitionname:taskdefinitionversion --desired-count 2 --launch-type FARGATE --platform-version LATEST --network-configuration "awsvpcConfiguration={subnets=[subnet-abcdef123],securityGroups=[sg-pqrst5678]}" --propagateTags TASK_DEFINITION/SERVICE

Pour activer la propagation d’identifications pour un service existant, exécutez la commande update-service suivante :

aws ecs update-service --cluster clustername --service servicename --propagate-tags SERVICE/TASK_DEFINITION --force-new-deployment

Vous pouvez également utiliser la console Amazon ECS pour activer la propagation des identifications.

Procédez comme suit :

  1. Ouvrez la console Amazon ECS.
  2. Sélectionnez la région de la ressource Amazon ECS.
  3. Dans le volet de navigation, sélectionnez Définitions de tâche.
  4. Sélectionnez la définition de tâche dans la liste des ressources, puis choisissez Actions.
  5. Sélectionnez Créer un service ou Exécuter une tâche.
  6. Dans Configuration d’identification de la tâche, sélectionnez Définitions de service ou Définitions de tâche.
    Remarque : L'option par défaut est Ne pas propager.

Pour configurer des identifications dans Amazon ECS à l’aide du service AWS CloudFormation, vous devez déclarer la ressource AWS::ECS::Service. Pour déclarer la ressource AWS::ECS::Service, définissez les propriétés EnableECSManagedTags et PropagateTags avec la valeur SERVICE ou TASK_DEFINITION.

Remarque :

Utiliser le format ARN approprié

Pour identifier les ressources Amazon ECS, vous devez utiliser les nouveaux formats d’ARN et d’ID. Pour migrer un déploiement Amazon ECS vers le nouveau format d’ARN et d’ID de ressource, consultez la section Migration d’un déploiement Amazon ECS vers le nouveau format d’ARN et d’ID de ressource.

Remarque : Vos ressources existantes reçoivent le nouveau format ARN uniquement après avoir recréé les ressources.

Vérifier que l’entité IAM dispose des autorisations requises et vérifier les restrictions d’identification

Tous les comptes AWS utilisent l'autorisation d’identification. Pour identifier des ressources Amazon ECS lorsque vous les créez, le principal IAM doit disposer de l'autorisation ecs:TagResource. Les API Amazon ECS suivantes doivent également disposer de cette autorisation :

  • CreateCapacityProvider
  • CreateCluster
  • CreateService
  • CreateTaskSet
  • RegisterContainerInstance
  • RegisterTaskDefinition
  • RunTask
  • StartTask

Si vous ne parvenez pas à ajouter des identifications à votre service Amazon ECS ou à créer des ressources, procédez comme suit pour résoudre ce problème :

  1. Consultez les événements AWS CloudTrail pour rechercher des événements TagResource.
  2. Examinez les événements pour rechercher l’un des messages d’erreur suivants :
    « AccessDenied »
    -ou-
    « The tags cannot be updated at this time. Wait a few minutes and try again »
    Si vous recevez l’une des erreurs précédentes, cela signifie que l’entité IAM ne dispose pas des autorisations ecs:TagResource.
  3. Utilisez la console IAM ou l’interface AWS CLI pour ajouter les autorisations ecs:TagResource aux entités IAM.
  4. Recréez la ressource ou ajoutez de nouveau les identifications au cluster Amazon ECS.
  5. Vérifiez que vos identifications Amazon ECS respectent les restrictions liées aux identifications.

Vérifiez si vous rencontrez un problème de facturation et de gestion des coûts

Si vous ne pouvez pas filtrer les tâches Amazon ECS par identifications pour vérifier le coût, vérifiez que les identifications requises figurent sur les tâches Amazon ECS. Exécutez la commande list-tags-for-resource suivante :

aws ecs list-tags-for-resource --resource-arn value

Remarque : Remplacez value par l'ARN de votre tâche.

Pour utiliser la console Amazon ECS afin de vérifier les identifications des tâches Amazon ECS, procédez comme suit :

  1. Ouvrez la console Amazon ECS.
  2. Sélectionnez la région de la ressource Amazon ECS.
  3. Dans le volet de navigation, choisissez un type de ressource, par exemple Clusters.
  4. Sélectionnez votre ressource, puis choisissez Identifications pour voir toutes les identifications qui existent pour cette ressource.

Pour vérifier les identifications gérées, vous devez activer les identifications gérées Amazon ECS. Pour vérifier si les identifications gérées par Amazon ECS sont activées, exécutez la commande describe-services suivante :

aws ecs describe-services --services servicename --cluster clustername --region region --query 'services[*].enableECSManagedTags' --output text

Remarque : Remplacez servicename par le nom de votre service, clustername par le nom de votre cluster et region par votre région.

Dans la sortie de la commande, vérifiez si enableECSManagedTags est défini sur vrai.

Pour activer les identifications gérées par Amazon ECS à l’aide de la console, procédez comme suit :

  1. Ouvrez la console Amazon ECS.
  2. Sélectionnez la région de la ressource Amazon ECS.
  3. Dans le volet de navigation, sélectionnez Définitions de tâche.
  4. Sélectionnez la définition de tâche dans la liste des ressources, puis choisissez Actions.
  5. Sélectionnez Créer un service ou Exécuter une tâche.
  6. Dans Configuration d’identification de la tâche, choisissez Activer les identifications gérées par ECS.

Pour activer les identifications gérées par ECS à l’aide de l’interface AWS CLI, exécutez la commande update-service :

aws ecs update-service --cluster clustername --service servicename --enable-ecs-managed-tags --force-new-deployment

Remarque : Remplacez clustername par le nom de votre cluster et servicename par le nom de votre service.

Les identifications que vous utilisez pour la facturation sont répertoriées, mais peuvent ne pas être visibles dans AWS Cost Explorer. Pour résoudre ce problème, activez les identifications de répartition des coûts dans la console de facturation et de gestion des coûts.

Remarque : l’activation des balises peut prendre jusqu’à 24 heures.

Informations connexes

Résolution des problèmes avec Amazon ECS

Identification des ressources Amazon ECS

Accorder l’autorisation d’identification des ressources lors de leur création

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un mois