Je souhaite déployer une tâche dans Amazon Elastic Container Service (Amazon ECS), mais l'erreur suivante s'affiche : « [AWS service] was unable to place a task because no container instance met all of its requirements. »
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 la version la plus récente de l’AWS CLI.
Si votre instance de conteneur ne répond pas à une exigence, Amazon ECS ne peut pas déployer de tâches. Pour résoudre l'erreur « no container instance met all of its requirements », vérifiez les détails de l'erreur, puis effectuez les étapes de dépannage appropriées.
Détail de l'erreur : Aucune instance de conteneur enregistrée dans le cluster
Ce problème se produit lorsque votre cluster ne contient aucune instance de conteneur. Pour résoudre ce problème, ajoutez des instances de conteneur à votre cluster. Vérifiez également que vos instances de conteneur n’omettent pas de s'enregistrer dans le cluster Amazon ECS.
Détail de l'erreur : L'instance de conteneur correspondante la plus proche a rencontré l'erreur « AGENT »
Cette erreur s'affiche lorsque l'agent de conteneur Amazon ECS qui s'exécute sur l'instance de conteneur désignée pour le placement de tâche est déconnecté. Pour résoudre cette erreur, consultez la section Comment puis-je résoudre l'erreur « the closest matching container-instance container-instance-id encountered error 'AGENT' » pour mon service dans Amazon ECS ?
Détail de l'erreur : L'instance de conteneur correspondante la plus proche utilise déjà un port requis par votre tâche
Cette erreur s'affiche lorsqu'un port dont l'instance de conteneur a besoin est déjà utilisé dans l'instance. Vous ne pouvez pas exécuter plusieurs tâches sur le même port. Pour résoudre ce problème, ajoutez d'autres conteneurs d'instance à votre cluster. Ou, pour permettre à vos tâches d'utiliser n'importe quel port disponible sur une instance de conteneur, utilisez le mappage de ports dynamique.
Détail de l'erreur : L'instance de conteneur correspondante la plus proche ne dispose pas d’une mémoire, d’un processeur ou d’unités GPU suffisants disponibles
Si vous recevez une erreur de mémoire insuffisante, de GPU insuffisant ou de processeur insuffisant, vérifiez les ressources utilisées par chaque tâche et instance de conteneur. Afin de résoudre ce problème, procédez comme suit :
Pour plus d’informations sur Processeur insuffisant, consultez la section Comment puis-je corriger l’erreur « the closest matching container-instance container-instance-id has insufficient CPU units available » dans Amazon ECS ?
Pour mettre automatiquement à l’échelle vos instances EC2 en fonction de la demande de ressources, utilisez les fournisseurs de capacité Amazon ECS pour les charges de travail EC2 avec la mise à l’échelle gérée activée. Les fournisseurs de capacité ajustent automatiquement le nombre d'instances EC2 de votre groupe Auto Scaling pour répondre aux besoins en ressources de vos tâches. Pour plus d'informations, consultez les sections Fournisseurs de capacité Amazon ECS pour les charges de travail EC2 et Gérer automatiquement la capacité Amazon ECS avec l’autoscaling automatique des clusters.
Détail de l'erreur : Impossible de dépasser la limite de l’interface réseau Elastic ou de l’interface réseau d'instance de la ressource de tâche
Si l'instance de conteneur ne dispose d'aucun point d'attache de l'interface réseau Elastic disponible, réduisez le nombre de tâches et de réplicas de tâche. Vous pouvez également ajouter d'autres instances de conteneur à votre cluster. Si ce problème persiste, utilisez awsvpcTrunking pour augmenter la densité de l’interface réseau Elastic sur vos instances Amazon Elastic Compute Cloud (Amazon EC2).
Détail de l'erreur : Attribut manquant de l'instance de conteneur correspondante la plus proche requis par votre tâche
Cette erreur s'affiche lorsque votre définition de tâche contient un paramètre qui requiert un attribut d'instance de conteneur qui est manquant sur votre instance de conteneur.
Pour vérifier les attributs enregistrés sur votre instance de conteneur, exécutez la commande describe-container-instances de l'interface de la ligne de commande AWS :
aws ecs describe-container-instances \
--cluster CLUSTER-NAME \
--container-instances CONTAINER-INSTANCE-ID \
--region REGION
Remarque : Remplacez CLUSTER-NAME par le nom de votre cluster. Remplacez CONTAINER-INSTANCE-ID par l'ID ou l'ARN de votre instance de conteneur. Remplacez REGION par votre région AWS.
Passez en revue le tableau d’attributs dans la sortie et comparez-le aux attributs requis par la définition de votre tâche. Tout attribut répertorié dans la définition de tâche mais absent de la sortie de l'instance de conteneur est un attribut manquant.
Vous pouvez configurer un service Amazon ECS afin qu’il s’exécute sur un sous-réseau différent de celui de l’instance de conteneur. Dans ce cas, la sortie des attributs ne montre aucun attribut manquant, même si la tâche échoue avec l'erreur d'attribut manquant. Les sous-réseaux de votre service doivent correspondre à l’instance de conteneur. Pour résoudre ce problème, recréez le service Amazon ECS dans le sous-réseau où se trouve l’instance de conteneur.
Remarque : Certains paramètres de définition de tâches requièrent une version spécifique de l'API distante Docker sur l'instance de conteneur. D'autres options, telles que les options du pilote de journalisation, nécessitent que les instances de conteneur enregistrent ces pilotes de journal avec la variable de configuration de l'agent ECS_AVAILABLE_LOGGING_DRIVERS. Pour en savoir plus, consultez les sections Paramètres de définition des tâches Amazon ECS et Configuration de l’agent de conteneur Amazon ECS.
Si Amazon ECS Exec est activé pour vos tâches, l'attribut ecs.capability.execute-command est peut-être manquant dans l'instance de conteneur. Cet attribut est présent par défaut sur les Amazon Machine Images (AMI) optimisées pour ECS, mais il est possible qu'il ne figure pas sur les AMI personnalisées. Pour résoudre ce problème, effectuez l'une des actions suivantes :
Détail de l'erreur : Contrainte de placement ABCDXYZ insatisfaite
Si vous utilisez des contraintes de placement pour placer des tâches dans des instances spécifiques, vérifiez que les instances de conteneur prennent en charge les attributs ou les contraintes sélectionnés.
Par exemple, pour distinctinstance, Amazon ECS place chaque tâche active sur une instance de conteneur différente. Si 5 tâches et 3 instances de conteneur sont disponibles, le placement des tâches échoue et vous recevez l’erreur « constraint unsatisfied ». Pour résoudre ce problème pour distinctInstance, ajoutez d'autres instances de conteneur à votre cluster.
Informations connexes
Résolution de problèmes liés à Amazon ECS
Créer un service ECS
Consultation de messages liés aux événements de service Amazon ECS
Messages d’événement de service Amazon ECS