2017-10-21 190 views
1

因此,我使用boto3連接到AWS並管理位於Elastic Load Balancer(ELB)後面的Web服務器實例。問題是我沒有訪問我的ELB,這是我有權訪問像Instances這樣的其他現有資源。例如,當我運行這段代碼,我可以看到我正在運行的實例:使用適用於python的AWS開發工具包訪問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的名稱。但是,我有我的控制檯ELB工作正常:

The existing ELB in my AWS console

我不知道爲什麼Python代碼不起作用。

回答

2

對於較新的負載均衡器使用ElasticLoadBalancingV2類:ALB和NLB。示例:client = boto3.client('elbv2')

對「Classic Load Balancer」使用ElasticLoadBalancing類。

ElasticLoadBalancingv2

相關問題