注意:这是关于ELBv2 ALB,而不是传统的负载平衡器ELBv1,但是我谦虚的代表不会让我改善标记。
我正在尝试创建AWS ECS Fargate服务。我已经为Task中的每个容器创建了一个应用程序负载均衡器,由于根据文档,create-service现在支持多个负载均衡器-我们应该一切都好吧?由于它是ALB,因此我指定targetGroupArn而不是loadBalancerName,并且由于ECS默认情况下创建了服务链接角色,因此AWSServiceRoleForECS我应该能够映射目标组并继续创建服务,对吗?以前,您不得不根据互联网上的提示手动创建ecsServiceRole。
我的命令是
aws ecs create-service --region $REGION --cluster $CLUSTER --service-name production-svc --task-definition $TASK_ARN --desired-count 2 --launch-type "FARGATE" --network-configuration "awsvpcConfiguration={subnets=[${SUBNET_1}, ${SUBNET_2}],securityGroups=[${SECURITYGROUP_ID}]}" --load-balancers=tgt-a,containerName=a,containerPort=5000,targetGroupArn=tgt-b,containerName=b,containerPort=6000
我得到的错误是 调用CreateService操作时发生错误(InvalidParameterException):无法承担角色并验证指定的targetGroupArn。请确认所传递的ECS服务角色具有适当的权限。
现在,尽管可以通过互联网查看我的负载均衡器不存在(您必须信任我,但它们确实存在-我提供了目标组ARN,并且这些目标组已通过aws elbv2 cli确认存在并被映射到有效的活动应用程序负载均衡器,这些负载均衡器都与群集位于同一区域),或者服务映射角色(先前为我创建的一个AWS)没有足够的权限来验证targetGroupArn。
我真的必须为自动ECS服务映射角色添加权限吗?如果是这样-具有哪些权限?
"elasticloadbalancing:DeregisterInstancesFromLoadBalancer",
"elasticloadbalancing:DeregisterTargets",
"elasticloadbalancing:Describe*",
"elasticloadbalancing:RegisterInstancesWithLoadBalancer",
"elasticloadbalancing:RegisterTargets",
我的自动角色(具有AmazonECSServiceRolePolicy)已经拥有所有这些角色?缺少哪些?