10

我需要通过 instance-id 获取实例,是否可以在不请求所有实例列表的情况下做到这一点?

我试过了:

ec2_conn = boto.connect_ec2(aws_access_key_id=key, aws_secret_access_key=access)
c2.get_all_instances([instanceId])

它可以工作,但是还有其他方法可以获取实例吗?

我问的原因是我收到UnauthorizedOperationget_all_instances请求,所以我更愿意更改请求,而不是安全设置。

4

3 回答 3

16

自 OP 提出问题以来,也许boto已经发展,但这值得在这里添加最新的答案:

reservations = ec2conn.get_all_instances(instance_ids=['i-12345678'])
instance = reservations[0].instances[0]
于 2013-04-25T16:23:37.800 回答
8

你可以试试

reservations = ec2_conn.get_all_instances(filters={'instance-id' : 'i-xxxxxxxx'})
new_instance = reservations[0].instances[0]

它肯定会奏效。

于 2012-08-24T13:12:22.663 回答
3
instances = get_only_instances(instance_ids=['i-12345678'])

关于使用上述答案

get_all_instances()

,来自BOTO API --

get_all_instances() is deprecated in favor of get_all_reservations(). 

A future major release will change get_all_instances() to return a list of 
boto.ec2.instance.Instance objects as its name suggests. 
To obtain that behavior today, use get_only_instances().
于 2015-04-16T20:35:19.193 回答