我想通過boto獲取LoadBalancer上的所有實例,我該如何實現這一點?如何獲取使用Boto綁定到LoadBalancer的所有EC2實例的地址?
這是我到目前爲止有:
<ErrorResponse xmlns="http://webservices.amazon.com/AWSFault/2005-15-09"> <Error> <Type>Sender</Type> <Code>InvalidAction</Code> <Message>Could not find operation DescribeInstances for version 2012-03-01</Message> </Error> <RequestId>c6aab70d-b22b-11e1-a990-a747bbde9f63</RequestId> </ErrorResponse>
我使用博託2.4.1:
import boto
from boto.regioninfo import RegionInfo
from boto import ec2
ACCESS_KEY_ID = '*****'
SECRET_ACCESS_KEY = '********'
reg = RegionInfo(
name='ap-southeast-1',
endpoint='elasticloadbalancing.ap-southeast-1.amazonaws.com')
conn = boto.connect_elb(
aws_access_key_id=ACCESS_KEY_ID,
aws_secret_access_key=SECRET_ACCESS_KEY,
region=reg)
ec2_connection = boto.ec2.connection.EC2Connection(
aws_access_key_id=ACCESS_KEY,
aws_secret_access_key=SECRET_ACCESS_KEY,
region=reg)
instances = [ instance.id for instance in conn.get_all_load_balancers()[3].instances ]
# instances is now [u'i-62448d36'], so far so good.
ec2_connection.get_all_instances(instances)
與結束。
這是因爲您創建的RegionInfo對象在其中具有彈性負載平衡端點,而不是ec2端點。你必須創建另一個RegionInfo爲EC2或者您可以使用 「導入boto.ec2; ec2_connection = boto.ec2.connect_to_region( 'AP-southest-1')」 來獲得EC2Connection對象。 – garnaat
@garnaat嗯,我注意到過了一會兒。我不能在該地區使用同一個對象,這有點違反直覺。 –