J'ai un conteneur Docker stocké sur AWS ECR, à l'aide de ce conteneur, j'ai créé la tâche. Lorsque j'exécute Task sur Fargate, le service passe des états PROVISIONING> PENDING (couleur rouge)> STOPPED.
Il n'y a pas de journal dans Service Event ou CloudWatch. Absolument aucun moyen de savoir quel est le vrai problème.
Aucune idée de la manière de procéder, le document AWS n'a pas aidé.
J'ai aussi vu cette erreur. Dans mon cas, le problème était que j'avais une valeur image
invalide dans ma définition de conteneur. L'image est généralement un repository_url et une balise d'image conformes aux instructions image
dans https://docs.aws.Amazon.com/elasticloadbalancing/latest/application/load-balancer-access-logs.html
AWS Fargate a une information simple mais complexe qui manque, c’est ce qui vous a conduit à votre problème. Laissez-moi vous expliquer, étape par étape.
La première étape consiste à créer une définition de tâche. Lorsque vous le faites, vous pouvez définir
Entry point ["/bin/ls"]
Command [">","/list.txt","|","echo","/list.txt"]
Ceci est équivalent à/bin/ls> /list.txt | echo /list.txt.
Veuillez noter que les espaces entre les deux doivent être remplacés par des virgules. L’équipe AWS Farget a oublié que, dans la section TaskDefinition> Add Container de l’assistant, ce délimiteur de virgule a un écho, helloworld est fourni dans la zone de texte [! [Entrer la description de l’image ici] [1]] [1]. Mais dans le formulaire de tâche, il n'y a pas une telle information. C'est très déroutant.
Une dernière chose, AWS Fargate a des informations très limitées pour le débogage. Voici mes conseils
J'espère que ça aide
Est-ce que cette question a déjà répondu? D'après mon expérience, vous devez ajouter des autorisations dans votre caisse enregistreuse électronique. Dans votre référentiel, il y a un onglet appelé leurs autorisations. Ajoutez les autorisations dont vous pensez avoir besoin.
Comme Marc le mentionne, il s'agit généralement d'un nom d'image DockerHub/repo erroné.
Dans mon cas, c'est parce que le nom de l'image a été calculé par une variable d'environnement, dans mon fichier Docker Compose:
services:
web:
image: scipilot/my-web-app:$MY_VERSION_TAG
Et j'avais manqué de définir la variable d'environnement en utilisant ecs-cli compose service up
. Donc, Fargate essayait probablement d'extraire "scipilot/my-web-app:" de Docker Hub, d'où une erreur de format non valide.