Je souhaite résoudre les problèmes liés à l'échec d'une tâche Amazon Elastic Container Service (Amazon ECS) dans un cluster ECS.
Brève description
Vos conteneurs peuvent être fermés en raison de problèmes d’image, de problèmes d’application, de contraintes de ressources ou d’autres problèmes.
En cas d’échec de tâche dû à des problèmes d’image, consultez la section Comment puis-je résoudre l’erreur « Image does not exist » lorsque le lancement de mes tâches échoue dans le cluster Amazon ECS ?
Pour les tâches AWS Fargate qui s'arrêtent de façon inattendue, consultez les messages d'erreur relatifs aux tâches interrompues d'Amazon ECS.
Pour analyser les autres problèmes qui empêchent le démarrage d'une tâche ECS, vous pouvez utiliser le dossier d’exploitation AWS Systems Manager AWSSupport-TroubleshootECSTaskFailedToStart.
Vous pouvez également résoudre manuellement des problèmes liés à votre cluster 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.
Exécutez le dossier d’exploitation pour résoudre des problèmes liés à votre cluster
Avant de démarrer le dossier d’exploitation AWSSupport-TroubleshootECSTaskFailedToStart, assurez-vous que votre utilisateur ou votre rôle IAM dispose des autorisations requises. Pour plus d'informations, consultez la section Autorisations IAM requises de la rubrique AWSSupport-TroubleshootECSTaskFailedToStart.
Pour lancer le dossier d’exploitation, procédez comme suit :
- Accédez au document AWSSupport-TroubleshootECSTaskFailedToStart dans la console AWS Systems Manager.
- Sélectionnez Exécuter l'automatisation.
- Saisissez les valeurs suivantes pour les paramètres d'entrée :
(Facultatif) AutomationAssumeRole : L'ARN du rôle IAM qui permet à Automation d'effectuer des actions à votre place. Si vous ne spécifiez aucun rôle, l'automatisation utilise les autorisations de l'utilisateur qui lance le dossier d’exploitation.
ClusterName : Nom du cluster ECS sur lequel la tâche n'a pas pu démarrer.
(Facultatif) CloudwatchRetentionPeriod : La période de conservation, en jours, pour stocker les journaux de fonction AWS Lambda dans Amazon CloudWatch Logs.
Remarque : Définissez cette valeur lorsque l'analyse détermine que vous devez tester la connectivité réseau. La valeur par défaut est de 30 jours. Les autres valeurs valides sont 1, 3, 5, 7, 14, 60 et 90.
TaskId : ID de la dernière tâche ayant échoué.
- Sélectionnez Exécuter.
Remarque : Pour plus d'informations sur les étapes du dossier d’exploitation, consultez la section Étapes du document d'AWSSupport-TroubleshootECSTaskFailedToStart.
- Consultez les résultats détaillés dans la section Sorties. La sortie inclut les informations suivantes :
TaskFailureReason : Analyse de la raison de l'échec de la tâche finale.
ExecutionLogs : Les journaux de sortie de chaque étape effectuée par le dossier d’exploitation.
ENI_Deletion_Message.Status : Statut de la suppression de l'interface réseau Elastic du cloud privé virtuel Lambda (VPC) lorsque le dossier d’exploitation crée une fonction Lambda pour tester la connectivité réseau.
Remarque : Si ENI_Deletion_Message indique que l'interface réseau n'a pas été supprimée, supprimez-la manuellement.
Résoudre les problèmes de votre cluster ECS manuellement
Consultez les informations de diagnostic dans le journal des événements de service. Utilisez également la console Amazon ECS ou l'AWS CLI pour vérifier la présence d'erreurs dans les tâches interrompues.
Pour résoudre les problèmes de contrainte de mémoire, consultez la section Comment puis-je allouer de la mémoire aux tâches dans Amazon ECS ?
Si vous disposez déjà d’un pilote de journal configuré, consultez vos journaux d’application pour détecter d’éventuels problèmes liés aux applications. Par exemple, si vous avez configuré le pilote de journal awslogs dans votre définition de tâche, consultez les journaux de conteneurs awslogs dans Amazon CloudWatch. Vous pouvez également utiliser les options de configuration de journal dans votre définition de tâche pour envoyer les journaux à un pilote de journal personnalisé pour le conteneur.
Tâches ECS autres que Fargate
Si vous utilisez le pilote de journal de fichiers json par défaut avec le type de lancement Amazon Elastic Compute Cloud (Amazon EC2), exécutez la commande docker logs :
docker logs dc7240fe892a
Remarque : Remplacez dc7240fe892a par l'ID de votre conteneur.
La commande précédente vérifie les journaux Docker du conteneur sur votre instance de conteneur ECS. Pour en savoir plus sur le pilote de journal de fichiers JSON, consultez la page Pilote de journalisation de fichiers JSON du site Web Docker.
Tâches Fargate
Le pilote de journal awslogs transmet les journaux de Docker à CloudWatch Logs. Les journaux indiquent les flux STDOUT et I/O STDERR provenant des sorties de commande.
Informations connexes
AWS Support Automation Workflows (SAW)
Configuration d’Automation
Exécuter une opération automatisée optimisée par Systems Manager Automation