首次使用AWS CodePipeline遇报错:ECS容器todo-ecr-container不存在
解决AWS CodePipeline部署ECS时报错“The AWS ECS container todo-ecr-container does not exist”
以下是针对该报错的实用排查和解决步骤:
核对部署阶段容器名称的一致性
确保CodePipeline部署动作中指定的容器名称和任务定义JSON里containerDefinitions下的name值完全匹配,包括大小写、空格和特殊字符。很多时候报错是因为拼写细微差异,比如任务定义里是Todo-ECR-Container,但部署配置里写的是全小写的todo-ecr-container。确认任务定义版本的有效性
如果部署时指定了特定任务定义版本,检查该版本的任务定义是否确实包含todo-ecr-container容器;若使用LATEST版本,要确认最新版本的任务定义没有被误修改导致容器被删除或重命名。可以直接在ECS控制台查看对应版本的任务定义JSON结构,搜索容器名称验证存在性。检查ECR镜像及权限配置
确认todo-ecr-container关联的ECR镜像仓库存在且有可用镜像标签;同时检查CodePipeline使用的IAM服务角色是否具备ecr:GetDownloadUrlForLayer、ecr:BatchGetImage等拉取镜像的必要权限。验证任务定义与集群类型的兼容性
如果是Fargate集群,检查任务定义中容器的CPU、内存配置是否符合Fargate的规格限制;如果是EC2集群,确认集群内有可用的EC2实例,且实例拥有访问ECR镜像仓库的权限。
内容的提问来源于stack exchange,提问作者Iheanacho Amarachi Sharon
相关产品推荐
相关产品推荐

