Je reçois cette erreur lors de l'exécution d'une tâche sur mon cluster Amazon Fargate. Est-ce que quelqu'un a déjà vu ça? Merci d'avance.
L'adresse IP publique est obligatoire pour Farget. Pour plus de détails https://github.com/aws/Amazon-ecs-agent/issues/1128
Allez à la documentation pour une réponse à celle-ci.
https://docs.aws.Amazon.com/AmazonECS/latest/developerguide/task_cannot_pull_image.html
Puisque vous rencontrez une erreur 500
, je tiens compte de la description de la première erreur, "Connexion expirée":
Lorsqu'une tâche Fargate est lancée, son interface réseau élastique nécessite un routage vers Internet pour extraire les images de conteneur. Si vous recevez une erreur semblable au suivant lors du lancement d’une tâche, c’est qu’il n’existe pas de route vers Internet:
CannotPullContainerError: API error (500): Get https://111122223333.dkr.ecr.us-east-1.amazonaws.com/v2/: net/http: request canceled while waiting for connection
Pour résoudre ce problème, vous pouvez:
Pour les tâches des sous-réseaux publics, spécifiez ENABLED pour Attribuer automatiquement une adresse IP publique lors du lancement de la tâche ...
Pour les tâches des sous-réseaux privés, spécifiez DISABLED pour Attribuer automatiquement une adresse IP publique lors du lancement de la tâche, puis configurez une passerelle NAT dans votre VPC pour acheminer les demandes vers Internet ...
Si vous rencontrez d'autres problèmes liés aux tâches ECS qui ne démarrent pas ou ne présentent pas un comportement étrange au démarrage, consultez la liste complète des Sujets de dépannage ECS .
Je rencontrais une erreur similaire (404
au lieu de 500
), cependant, la tâche a indiqué qu'elle fonctionnait même si le statut détaillé indiquait une erreur.
Il s'avère que le rôle associé à la tâche (dans ce cas, le même rôle que l'instance EC2 sur laquelle elle était exécutée) ne pouvait pas être assumé par ecs-tasks. L'ajout de l'instruction de relation de confiance suivante au rôle a résolu le problème:
{
"Effect": "Allow",
"Principal": {
"Service": "ecs-tasks.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
Voir la page spécifique sur le Rôles d'exécution de la tâche pour plus de détails.
Cette erreur se produit lorsque le conteneur ne parvient pas à extraire le conteneur du registre.
Vous devez affecter un IP public à votre service. Vous pouvez le faire lors de la définition du service, mais à ma connaissance, vous ne pouvez pas mettre à jour votre service à partir du menu de mise à jour.