Amazon web services 使用AWS CLI将AWS LoadBalancer添加到服务

Amazon web services 使用AWS CLI将AWS LoadBalancer添加到服务,amazon-web-services,amazon-ec2,amazon-ecs,Amazon Web Services,Amazon Ec2,Amazon Ecs,我正在尝试使用AWS CLI将AWS ELB添加到ECS群集服务。我正在使用以下命令: aws ecs创建服务-服务名称${service_name}-所需计数1-任务定义启动测试应用程序-负载平衡器targetGroupArn=arn:aws:ElasticLoadBalancement:us-east-1:nnnnnnnnnnnnnn:loadbalancer/app/bw test/edfe7f7c15e40d56,containerName=launch test应用程序,contain

我正在尝试使用AWS CLI将AWS ELB添加到ECS群集服务。我正在使用以下命令:

aws ecs创建服务-服务名称${service_name}-所需计数1-任务定义启动测试应用程序-负载平衡器targetGroupArn=arn:aws:ElasticLoadBalancement:us-east-1:nnnnnnnnnnnnnn:loadbalancer/app/bw test/edfe7f7c15e40d56,containerName=launch test应用程序,containerPort=8080-角色arn:aws:iam::nnnnnnnnnnnnnn:role/service role/bw计量角色-集群${cluster}-区域${region}

角色“bw计量角色”附加了以下策略:

AmazonEC2ContainerServiceFullAccess AmazonEC2ContainerServiceforEC2Role 该角色还具有以下信任关系:

{ 版本:2012-10-17, 声明:[ { 效果:允许, 负责人:{ 服务:[ ecs.amazonaws.com, ec2.amazonaws.com ] }, 行动:sts:假设角色 } ] }

但在执行上述AWS CLI命令时,仍然出现以下错误:

调用CreateService操作时发生InvalidParameterException错误:无法承担角色并验证指定的targetGroupArn。请验证正在传递的ECS服务角色是否具有正确的权限


我已经寻找并找到了一些解决方案,但没有任何积极的结果

阅读AWS文档后,我发现对于经典负载平衡器,我们应该提供以下详细信息loadBalancerName:

-负载平衡器loadBalancerName=bwce lb,containerName=launch test app,containerPort=8080

对于我的应用程序负载平衡器,我们应该提供以下详细信息targetGroupArn:

-负载平衡器targetGroupArn=arn:aws:ElasticLoadBalancement:us-east-1:750037626691:targetgroup/default/85fd830384028e21,containerName=launch测试应用程序,containerPort=8080

我以前输入值中的问题是,我在“targetGroupArn”字段中提供了LoadBalancer ARN,而不是提供targetGroupArn。一旦我修复了traget group ARN问题,它就开始正常工作。

该服务应该只需要AmazonEC2ContainerServiceforEC2Role,您通常不需要明确指定角色,因为它将自动承担角色AWSServiceRoleForECS,该角色是在您创建ECS群集时在您的帐户中创建的。