如何启动AWS ECS服务?部署断路器触发报错求助
AWS ECS部署断路器触发问题求助
尝试通过任务定义创建ECS集群及对应服务时,触发了ECS部署断路器,收到错误:
Resource handler returned message: "Error occurred during operation 'ECS Deployment Circuit Breaker was triggered'." (RequestToken: 657c3321-f13a-4213-3a8f-267e8865a914, HandlerErrorCode: GeneralServiceException)
我的任务定义JSON如下:
{ "taskDefinitionArn": "arn:aws:ecs:eu-west-1:317470260945:task-definition/task-alberto-django:1", "containerDefinitions": [ { "name": "alberto-django-ctnr", "image": "317470260945.dkr.ecr.eu-west-1.amazonaws.com/asm_repository:repo_personal_django", "cpu": 0, "links": [], "portMappings": [ { "containerPort": 80, "hostPort": 0, "protocol": "tcp" } ], "essential": true, "entryPoint": [], "command": [], "environment": [ ... ], "environmentFiles": [], "mountPoints": [], "volumesFrom": [], "secrets": [], "dnsServers": [], "dnsSearchDomains": [], "extraHosts": [], "dockerSecurityOptions": [], "dockerLabels": {}, "ulimits": [], "systemControls": [] } ], "family": "task-alberto-django", "executionRoleArn": "arn:aws:iam::317470260945:role/ecsTaskExecutionRole", "networkMode": "bridge", "revision": 1, "volumes": [], "status": "ACTIVE", "requiresAttributes": [ { "name": "com.amazonaws.ecs.capability.ecr-auth" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.17" }, { "name": "ecs.capability.execution-role-ecr-pull" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.18" } ], "placementConstraints": [], "compatibilities": [ "EXTERNAL", "EC2" ], "requiresCompatibilities": [ "EC2" ], "cpu": "1024", "memory": "1024", "runtimePlatform": { "cpuArchitecture": "X86_64", "operatingSystemFamily": "LINUX" }, "registeredAt": "2022-10-27T10:15:22.553Z", "registeredBy": "arn:aws:iam::317470260945:root", "tags": [ { "key": "ecs:taskDefinition:createdFrom", "value": "ecs-console-v2" }, { "key": "ecs:taskDefinition:stackId", "value": "arn:aws:cloudformation:eu-west-1:317470260945:stack/ECS-Console-V2-TaskDefinition-bb050013-6338-4b6e-83a3-54edd1775f3e/41ce7c80-55e0-11ed-bbd1-0add076f7d23" } ] }
排查方向建议:
- 集群资源验证:检查ECS集群内EC2实例是否有足够的CPU、内存资源匹配任务定义的
cpu:1024和memory:1024配置,同时确认实例处于健康在线状态。 - 镜像拉取权限与存在性检查:确认ECR镜像
317470260945.dkr.ecr.eu-west-1.amazonaws.com/asm_repository:repo_personal_django存在且标签正确;验证ecsTaskExecutionRole是否包含ECR拉取所需权限:ecr:GetDownloadUrlForLayer、ecr:BatchGetImage、ecr:BatchCheckLayerAvailability。 - 容器启动日志排查:通过AWS控制台或
aws ecs describe-tasks命令查看任务启动日志,确认容器是否因端口占用、环境变量缺失、应用启动失败等原因退出。 - 部署断路器配置调整:检查服务的部署断路器设置,若因连续部署失败触发断路,可临时调整失败次数阈值或手动重置部署状态。
- 网络配置检查:由于使用
bridge网络模式,确认EC2实例安全组允许容器端口80的通信,且实例能正常访问ECR服务(检查VPC端点或路由配置)。
内容的提问来源于stack exchange,提问作者Alberto Sanmartin Martinez
相关产品推荐
相关产品推荐

