Comment résoudre les problèmes liés à l'identification des tâches dans ECS ?

Date de la dernière mise à jour : 01/04/2022

J'ai un problème avec les identifications de tâches Amazon Elastic Container Service (Amazon ECS). Comment puis-je résoudre ce problème ?

Solution

Lorsque vous définissez des identifications avec Amazon ECS, vous pouvez rencontrer les problèmes suivants :

  • Vos identifications ne sont pas propagées de la définition du service ou de la tâche aux tâches.
  • Vos identifications ont un nom de ressource Amazon (Amazon Resource Name, ARN) et un format d'ID de ressource obsolètes.
  • Vous ne pouvez pas ajouter d'identifications à vos ressources ECS en raison d'autorisations AWS Identity and Access Management (IAM) manquantes ou de restrictions d'identification.
  • Vous ne pouvez pas voir les identifications ECS dans le tableau de bord de facturation AWS.

Pour résoudre ces problèmes, procédez comme suit :

Vérifiez que le paramètre PropagateTags est utilisé pour propager des définitions de service ou de tâche aux tâches

Le paramètre PropagateTags peut être utilisé pour copier les identifications de la définition de tâche ou du service vers la tâche. Cela peut être fait lorsque vous exécutez une tâche ou créez un service. Ce paramètre n'est pas activé par défaut.

Vous pouvez vérifier si le paramètre PropagateTags est utilisé dans un service spécifique en exécutant la commande suivante dans AWS CLI et en remplaçant servicename, clustername et region par les valeurs appropriées :

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

Pour configurer la propagation des identifications à partir de la définition du service ou de la tâche à l'aide de la CLI, consultez les API RunTask et CreateService.

Pour activer la propagation des identifications à l'aide de la console :

  1. Ouvrez la console Amazon ECS.
  2. Sélectionnez la Région AWS pour votre ressource ECS.
  3. Dans le panneau de navigation, sélectionnez Task Definitions (Définitions de tâches).
  4. Sélectionnez la définition de tâche dans la liste des ressources, puis choisissez Actions. Ensuite, choisissez Create Service (Créer un service) ou Run Task (Exécuter une tâche).
  5. Dans la Task tagging configuration (Configuration de l'identification des tâches), à côté de Propagate tags from (Propager les identifications de), choisissez Service ou Task definitions (Définitions de tâches).
    Remarque : l'option par défaut est Do not propagate (Ne pas propager).

Pour utiliser les identifications dans ECS en utilisant AWS CloudFormation, vous devez déclarer l'entité AWS::ECS::Service en utilisant les propriétés EnableECSManagedTags et PropagateTags avec la valeur : SERVICE ou TASK_DEFINITION.

Remarque :

  • L'utilisation des propriétés liées aux identifications de service ECS après la création de la pile dans CloudFormation nécessitera une mise à jour de la pile et le remplacement des ressources. Cela signifie que le service sera supprimé et recréé via CloudFormation.
  • L'utilisation du paramètre PropagateTags ne peut se faire que lorsque vous exécutez une tâche ou créez un service. Pour plus d'informations, consultez les API RunTask et CreateService.
  • Vous avez accès aux mêmes configurations pour les tâches planifiées que pour les tâches lancées directement à l'aide de l'API RunTask d'Amazon ECS.

Vérifiez que vous utilisez le nouveau format d'ARN

Pour pouvoir identifier les ressources Amazon ECS, vous devez utiliser les nouveaux formats d'Amazon Resource Name (ARN) et d'ID .

Exemple des deux formats :

  • Ancien format :arn:aws:ecs:region:aws_account_id:service/service-name
  • Nouveau format :arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name

Pour migrer votre déploiement ECS vers le nouveau format d'ARN et d'ID de ressource, consultez Migration de votre déploiement Amazon ECS vers le nouveau format d'ARN et d'ID de ressource.

Remarque : vos ressources existantes ne recevront pas le nouveau format d'ARN lors de l'identification tant qu'elles n'auront pas été recréées.

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

Si vous ne parvenez pas à ajouter des identifications à votre service ECS, procédez comme suit :

  1. Vérifiez les événements CloudTrail dans la console CloudTrail pour les événements TagResource.
  2. Si vous voyez l'une des erreurs suivantes : AccessDenied ou The tags cannot be updated at this time (Les identifications ne peuvent pas être mises à jour pour le moment). Attendez quelques minutes et réessayez. Dans ce cas, l'entité IAM ne dispose pas des autorisations ecs:TagResource.
  3. Pour résoudre ce problème, ajoutez les autorisations ecs:TagResource aux entités IAM.
  4. Une fois que les autorisations ont été ajoutées, réessayez d'ajouter les identifications au cluster ECS.

Confirmez que vos identifications ECS sont conformes aux restrictions relatives aux identifications. Pour consulter les restrictions d'identification, consultez Restrictions d'identification.

Vérifiez s'il s'agit d'un problème de Gestion des coûts et factures AWS

Pour vérifier que les identifications requises sont présentes au niveau des tâches ECS, exécutez la commande suivante dans AWS CLI et remplacez value par l'ARN :

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

Pour vérifier que les identifications requises sont présentes au niveau des tâches ECS à l'aide de la console :

  1. Ouvrez la console Amazon ECS.
  2. Sélectionnez la Région AWS pour votre ressource ECS.
  3. Dans le panneau de navigation, sélectionnez un type de ressource (par exemple, Clusters).
  4. Sélectionnez la ressource dans la liste des ressources et choisissez Tags (Identifications).
    Si des identifications existent, elles seront répertoriées.

Si vous recherchez des identifications gérées, l'option ECS-managed (Gérées par ECS ) doit être activée. Vérifiez le statut de l'option ECS-managed (Gérées par ECS ) en exécutant la commande suivante et en remplaçant servicename, clustername et region par les valeurs appropriées:

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

Le résultat de la commande contiendra la valeur enableECSManagedTags.

Vous pouvez activer les identifications ECS-managed (Gérées par ECS) lors de la création d'un service ou de l'exécution d'une tâche à l'aide de l'interface CLI. Pour plus d'informations, consultez les API RunTask et CreateService.

Pour activer les identifications ECS-managed (Gérées par ECS) à l'aide de la console :

  1. Ouvrez la console Amazon ECS.
  2. Sélectionnez la Région AWS pour votre ressource ECS.
  3. Dans le panneau de navigation, sélectionnez Task Definitions (Définitions de tâches).
  4. Sélectionnez la définition de tâche dans la liste des ressources, puis choisissez Actions. Ensuite, choisissez Create Service (Créer un service) ou Run Task (Exécuter une tâche).
  5. Dans la Task tagging configuration (Configuration de l'identification des tâches), sélectionnez Enable ECS managed tags (Activer les identifications gérées par ECS).

Si les identifications utilisées pour la facturation sont répertoriées mais ne sont pas visibles dans AWS Cost Explorer, assurez-vous qu'elles sont activées à partir de la console de facturation et de gestion des coûts. Pour activer les identifications de allocation des coûts, consultez Activation des identifications de répartition des coûts définies par l'utilisateur.
Remarque : chaque identification qui doit être affichée en tant que filtre dans le Cost Explorer doit être activée. L'activation des identifications peut prendre jusqu'à 24 heures.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?