我创建了一个任务,该任务使用 ECR 存储库中的 docker 镜像和 ECS 中的服务。运行环境为Fargate
,因此没有运行ec2实例。配置完所有资源后,服务的状态为ACTIVATE
,但任务的状态为STOPPED
,原因
Status reason CannotPullContainerError: Error response from daemon: Get https://773592622512.dkr.ecr.ap-southeast-1.amazonaws.com/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
我放在任务定义上的 docker 镜像是 773592622512.dkr.ecr.ap-southeast-1.amazonaws.com/flask:latest
。
当我点击在 CloudWatch 中查看日志
时,我看到空的日志流。我想知道如何调试这个问题?我是否必须将容器部署到 ec2 才能看到更详细的错误消息?
我已将此策略添加到任务角色:AmazonEC2ContainerRegistryFullAccess
。为什么拉不起来
最佳答案
经过一些调试后,我发现通过添加指向与任务使用的 VPC 关联的子网中的互联网网关的源 0.0.0.0/0
可以解决问题。然后在定义任务时启用分配公共(public)IP地址
。 AWS 没有为我提供太多有用的调试日志。
关于amazon-web-services - 如何对 ECS Fargate 上的容器进行故障排除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57549995/