AWS ECS Fargate ALB无法验证targetGroupArn



注意:这是关于ELBv2 ALB,而不是传统的负载均衡器ELBv1,但我的谦逊代表不会让我改进标记。

我正在尝试创建一个AWS ECS Fargate服务。我已经为Task中的每个容器创建了一个应用程序负载均衡器,由于create服务现在根据文档支持多个负载均衡器,我们应该都很好,对吧?由于它是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(已经拥有所有这些了吗?缺少哪些?

我也有同样的问题,可以确认Ali说的话:

事实证明,如果您使用aws ecs create-service通过CLI创建服务,则需要负载平衡器的完整arn。

文件确认:https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ecs/create-service.html

这有点令人困惑,因为在CloudFormation模板中;短";名称此外,错误消息有点误导。

希望这能有所帮助。

最新更新