使用AWS CLI创建ECS Fargate服务报错:无法指定IAM角色(需服务关联角色)
解决ECS Fargate创建服务时的Service Linked Role错误
你遇到的这个InvalidParameterException错误,核心原因是Fargate模式下的ECS服务不需要手动指定role参数——AWS会自动使用服务关联角色AWSServiceRoleForECS来完成必要的权限操作,手动指定这个角色反而会触发错误。
具体解决步骤:
- 修改你的
ecs-service.json配置文件,移除其中的"role": "AWSServiceRoleForECS"这一行。修改后的配置如下:
{ "cluster": "my-fargate-cluster", "serviceName": "dropinfun-spots", "desiredCount": 1, "launchType": "FARGATE", "networkConfiguration": { "awsvpcConfiguration": { "assignPublicIp": "ENABLED", "securityGroups": ["sg-06d506f7e444f2faa"], "subnets": ["subnet-c8ffcbf7", "subnet-1c7b6078", "subnet-d47f7efb", "subnet-e704cfad", "subnet-deeb43d1", "subnet-b59097e8"] } }, "taskDefinition": "dropinfun-spots-task", "loadBalancers": [ { "targetGroupArn": "arn:aws:elasticloadbalancing:us-east-1:************:targetgroup/dropinfun-spots-target-group/c21992d4a411010f", "containerName": "dropinfun-spots-service", "containerPort": 80 } ] }
- 重新执行创建服务的命令:
aws ecs create-service --cli-input-json file://aws_manual_cfn/ecs-service.json
补充说明:
- 服务关联角色
AWSServiceRoleForECS是AWS预定义的角色,用于让ECS服务访问其他AWS资源(比如弹性负载均衡器、CloudWatch日志等),Fargate模式下AWS会自动处理这个角色的关联,不需要你手动配置。 - 只有当你使用EC2启动类型的ECS服务,并且需要自定义服务权限(比如特定的负载均衡操作权限)时,才需要手动指定
role参数。
内容的提问来源于stack exchange,提问作者Juan Pablo García
相关产品推荐
相关产品推荐

