Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
Como resolvo um erro de ResourceInitializationError quando tento extrair uma imagem do Amazon ECR?
Eu recebo um erro ResourceInitializationError quando minha tarefa do Amazon Elastic Container Service (Amazon ECS) tenta extrair uma imagem do Amazon Elastic Container Registry (Amazon ECR).
Breve descrição
Ao iniciar uma tarefa do Amazon ECS, você pode receber uma das seguintes mensagens de erro ResourceInitializationError:
"Unable to pull secrets or registry auth: The task cannot pull registry auth from Amazon ECR: There is a connection issue between the task and Amazon ECR. Please check your task network configuration. RequestError: send request failed caused by: Post “https://api.ecr.region-code.amazonaws.com/”: dial tcp ip.xx.xx.xx.xx:443: i/o timeout”
-or-
“unable to pull secrets or registry auth: execution resource retrieval failed: unable to retrieve ecr registry auth: service call has been retried 3 time(s): RequestError: send request failed caused by: Post "https://api.ecr.region-code.amazonaws.com/": dial tcp ip.xx.xx.xx.xx:443: i/o timeout. Please check your task network configuration.”
Esses erros ocorrem quando sua tarefa do Amazon ECS não consegue extrair a imagem do contêiner ou recuperar as informações de autenticação do Amazon ECR.
Resolução
Observação: Se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Teste a conectividade da tarefa
Use o runbook AWSSupport-TroubleshootECSTaskFailedToStart para testar a conectividade da sua tarefa. Use o runbook na mesma região da AWS em que seus recursos de cluster do Amazon ECS estão localizados. Além disso, use o ID da tarefa que falhou mais recentemente. Se a tarefa com falha fizer parte do serviço Amazon ECS, use a tarefa que falhou mais recentemente no serviço. A tarefa com falha deve estar visível em ECS:DescribeTasks durante a execução da automação. Por padrão, as tarefas interrompidas do ECS ficam visíveis por 1 hora após entrarem no estado Interrompido.
Com base na saída da automação, use uma das seguintes etapas manuais de solução de problemas.
Verifique as rotas de suas sub-redes para a Internet
Verifique a tabela de rotas da sua sub-rede onde você implantou a tarefa do Amazon ECS. Verifique se sua tarefa tem uma rota padrão (0.0.0.0/0) para a Internet e se o grupo de segurança da tarefa permite tráfego de saída na porta 443.
Sub-redes públicas
Se sua tarefa do AWS Fargate estiver em uma sub-rede pública, você deverá atribuir um endereço IP público à sua tarefa.
Para visualizar a interface de rede elástica e o endereço IP privado da sua tarefa, execute o seguinte comando describe-tasks da AWS CLI:
aws ecs describe-tasks --cluster cluster-name --tasks task-arn
Observação: Substitua cluster-name pelo nome do cluster e task-arn pelo ARN da tarefa.
Para verificar se há um endereço IP público anexado à interface de rede da tarefa, execute o seguinte comando describe-network-interfaces:
aws ec2 describe-network-interfaces --network-interface-ids example-eni
Observação: substitua example-eni pela interface de rede da sua tarefa.
Configure o Amazon ECS para atribuir automaticamente um endereço IPv4 público à interface de rede associada à sua tarefa. Selecione Ativado para IP público ao executar uma nova tarefa ou criar um novo serviço.
Não é possível atribuir automaticamente endereços IP públicos para tarefas ou serviços existentes. Em vez disso, para recriar o serviço com a atribuição automática de endereços IP públicos ativada, execute o seguinte comando create-service:
aws ecs create-service --cluster cluster-name --service-name service-name --task-definition taskdef:revision --desired-count 1 --launch-type FARGATE --network-configuration "awsvpcConfiguration={subnets=[subnet-aaaaaa,subnet-bbbbbb],securityGroups=[sg-ccccccc],assignPublicIp=ENABLED}"
Observação: Substitua clustername pelo seu nome de cluster, servicename pelo seu nome de serviço e taskdefinitionname pela sua definição da tarefa. Substitua subnet-aaaaaa e subnet-bbbbbb por suas sub-redes e sg-ccccccc por seu grupo de segurança.
Certifique-se de que a conexão Amazon Virtual Private Cloud (Amazon VPC) para seu cluster tenha nomes de host DNS e resolução de DNS ativados.
Sub-redes privadas
Se sua tarefa estiver em uma sub-rede privada, verifique as seguintes configurações com base na sua fonte de conectividade com a Internet:
- Se você usa um gateway NAT, coloque-o em uma sub-rede pública.
- Se você usa o AWS PrivateLink, verifique se o grupo de segurança do endpoint da VPC permite tráfego de entrada na porta 443 do CIDR da VPC ou do grupo de segurança do serviço.
Verifique suas configurações de ACL de rede e grupo de segurança
Verifique se a lista de controle de acesso à rede (ACL de rede) e os grupos de segurança não bloqueiam o acesso de saída à porta 443 a partir da sub-rede.
Observação: as tarefas do Fargate devem ter acesso de saída à porta 443 para permitir o tráfego de saída e acessar os endpoints do Amazon ECS.
(Somente PrivateLink) Verifique seus endpoints do Amazon VPC
Se você usar o PrivateLink, deverá criar os endpoints necessários:
- Para o Amazon ECR, crie com.amazonaws.region.ecr.dkr e com.amazonaws.region.ecr.api.
- Para o gateway Amazon Simple Storage Service (Amazon S3), crie com.amazonaws.region.s3.
- Se você usa o Amazon CloudWatch para armazenar logs de aplicações, crie também com.amazonaws.region.logs.
Observação: no comando anterior, substitua region pela sua região.
Para mais informações, consulte Considerations for Amazon ECR VPC endpoints (Considerações sobre endpoints VPC do Amazon ECR).
Se sua VPC não tiver um gateway da internet e suas tarefas usarem o driver de log awslogs, crie um endpoint da VPC para o CloudWatch Logs.
Certifique-se de que o grupo de segurança do endpoint da VPC permita o tráfego do grupo de segurança de tarefas Fargate ou do intervalo CIDR da VPC na porta TCP 443.
Verifique seus perfis e permissões do IAM
Certifique-se de que o perfil de execução de tarefas do AWS Identity and Access Management (AWS IAM) tenha a AmazonEcstaskExecutionRolePolicy ou permissões equivalentes.
Para obter mais informações sobre permissões de perfis e o perfil de execução de tarefas, consulte Perfil do IAM de execução de tarefas do Amazon ECS.
Informações relacionadas
Verificar se o Amazon ECS interrompeu a conectividade de tarefas

Conteúdo relevante
- Resposta aceitafeita há 3 meseslg...
- feita há 2 meseslg...
- feita há 4 meseslg...