J'essaie d'exécuter un référentiel privé sur la plate-forme aws-ecs-fargate-1.4.0.
Pour l'authentification du référentiel privé, j'ai suivi le docs et cela fonctionnait bien.
D'une manière ou d'une autre, après avoir mis à jour le service existant plusieurs fois, il échoue à exécuter la tâche et se plaint de l'erreur comme
ResourceInitializationError: unable to pull secrets or registry auth: execution resource retrieval failed: unable to get registry auth from asm: service call has been retried 1 time(s): asm fetching secret from the service for <secretname>: RequestError: ...
Je n'ai pas changé le ecsTaskExecutionRole
et il contient toutes les politiques requises pour récupérer la valeur secrète.
J'avais exactement le même problème en utilisant Fargate comme type de lancement avec la version de la plate-forme 1.4.0
. À la fin, puisque j'utilisais des sous-réseaux publics, tout ce que j'avais à faire était de activer l'attribution de l'adresse IP publique aux tâches afin de permettre à la tâche d'avoir un accès réseau sortant pour extraire l'image.
J'ai eu un indice pour le résoudre lorsque j'ai essayé de créer le service en utilisant la version de la plate-forme 1.3.0
et la création de la tâche a échoué avec une erreur similaire mais heureusement documentée .
Je ne suis pas tout à fait sûr de votre configuration, mais après avoir désactivé les passerelles NAT pour économiser quelques dollars, j'ai eu un message d'erreur très similaire sur la plate-forme aws-ecs-fargate-1.4.0:
Stopped reason: ResourceInitializationError: unable to pull secrets or registry auth: execution resource retrieval failed: unable to retrieve ecr registry auth: service call has been retried 1 time(s): RequestError: send request failed caused by: Post https://api.ecr....
Il s'est avéré que je devais créer des points de terminaison VPC avec ces noms de service:
Et j'ai dû passer à la plate-forme aws-ecs-fargate-1.3.0. Après la rétrogradation, les images Docker ont pu être extraites d'ECR et les déploiements ont réussi à nouveau.
Si vous utilisez le gestionnaire de secrets sans passerelle NAT, il se peut que vous deviez créer un point de terminaison VPC pour com.amazonaws.REGION.secretsmanager
.
J'ai résolu un problème similaire en mettant à jour les règles dans le groupe de sécurité du service ECS. Ci-dessous la configuration des règles.
Inbound Rules:
* HTTP TCP 80 0.0.0.0/0
Outbound Rules:
* All traffic All All 0.0.0.0/0