使用 AWS CLI 将 AWS LoadBalancer 添加到服务



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

aws ecs create-service --service-name ${SERVICE_NAME} --desired-count 1 --task-definition launch-test-app --load-balancers targetGroupArn=arn:aws:elasticloadbalancing:us-east-1:NNNNNNNNNNNN:loadbalancer/app/bw-test/edfe7f7c15e40d56,containerName=launch-test-app,containerPort=8080 --role arn:aws:iam::NNNNNNNNNNNN:role/service-role/bw-metering-role --cluster ${CLUSTER} --region ${REGION}

角色"bw-metering-role"附加了以下策略:

  • AmazonEC2ContainerServiceFullAccess
  • AmazonEC2ContainerServiceforEC2Role

并且该角色还具有以下信任关系:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ecs.amazonaws.com", "ec2.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

但是在执行上述AWS CLI命令时,我仍然收到以下错误:

An error occurred (InvalidParameterException) when calling the CreateService operation: Unable to assume role and validate the specified targetGroupArn. Please verify that the ECS service role being passed has the proper permissions.

我已经搜索并找到了一些解决方案,但没有积极的结果。

浏览完 AWS 文档后,我发现对于经典负载均衡器,我们应该提供以下详细信息 (loadBalancerName(:

--load-balancers loadBalancerName=bwce-lb,containerName=launch-test-app,containerPort=8080

对于应用程序负载均衡器(这是我的情况(,我们应该提供以下详细信息(targetGroupArn(:

--load-balancers targetGroupArn=arn:aws:elasticloadbalancing:us-east-1:750037626691:targetgroup/default/85fd830384028e21,containerName=launch-test-app,containerPort=8080

我之前的输入值中的问题是,我在"目标组Arn"字段中提供了负载均衡器 ARN,而不是提供目标组ARN。一旦我解决了traget组ARN问题,它就开始正常工作。

最新更新