2017-10-21 54 views
1

boto3を使用してAWSに接続し、Elastic Load Balancer(ELB)の背後にあるWebサーバーインスタンスを管理しています。問題は、私がELBにアクセスできないということです。インスタンスのような他の既存のリソースにアクセスできるのです。出力はこのようなものですAWS SDKを使用したAWS Elastic Load Balancerへのアクセス

ec2 = boto3.resource('ec2', region_name="us-east-2") 
instances = ec2.instances.all() 
for instance in instances.all(): 
    print(instance) 

:以下のコードを実行することにより

ec2.Instance(id='i-xxxxxxxxxxxxxxxxx') 
ec2.Instance(id='i-xxxxxxxxxxxxxxxxx') 
ec2.Instance(id='i-xxxxxxxxxxxxxxxxx') 

、私が見ることを期待し、私は、コードのこの部分を実行している間、例えば、私は私の実行中のインスタンスを見ることができます私ELBs:

elb = boto3.client('elb', region_name="us-east-2") 
elbs = elb.describe_load_balancers() 
print(elbs) 

しかし、出力は次のようである:

{'LoadBalancerDescriptions': [], 'ResponseMetadata': {'RequestId': 'f813b2d3-b5e8-11e7-8b34-73b6f3d263a2', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'f813b2d3-b5e8-11e7-8b34-73b6f3d263a2','content-type': 'text/xml', 'content-length': '335', 'date': 'Fri, 20 Oct 2017 22:49:45 GMT'}, 'RetryAttempts': 0}} 

出力でわかるように、LoadBalancerDescriptionsにはELBはありませんが、API refferenceによれば、既存のELBの名前が含まれている必要があります。

The existing ELB in my AWS console

Pythonのコードが動作しない理由を私は知らない。しかし、私は正常に動作します私のコンソールでのELBを持っています。

答えて

2

新しいロードバランサのクラスElasticLoadBalancingV2をALBおよびNLBに使用します。例:client = boto3.client( 'elbv2')

「クラシックロードバランサ」にクラスElasticLoadBalancingを使用します。

ElasticLoadBalancingv2

関連する問題