2017-08-17 15 views
0

AWS CLIを使用して、ECSクラスタサービスにAWS ELBを追加しようとしています。AWS CLIを使用したサービスへのAWS LoadBalancerの追加

  • AmazonEC2ContainerServiceFullAccess
  • AmazonEC2ContainerServiceforEC2Role

と役割を:

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-計量・ロール' の役割が付加されたポリシーは次の通りです:私は、次のコマンドを使用しています次の信頼関係もあります:

{ "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.

私が検索し、いくつかの解決策を見つけましたが、無陽性の結果としています。

+0

ECSクラスタの作成時にアカウントに作成されるロール「AWSServiceRoleForECS」を自動的に引き受けるため、サービスにはAmazon EC2ContainerServiceforEC2Roleのみが必要で、一般的にロールを明示的に指定する必要はありません。 –

答えて

3

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を提供していたということでしたtargetGroupARNを提供する代わりに 'targetGroupArn'フィールドに入力します。私がトラッツグループARNの問題を修正した後、それは正常に動作し始めた。

関連する問題