我需要通过instance-id获取实例,是否可以在不请求所有实例列表的情况下执行此操作?
我试过了:
ec2_conn = boto.connect_ec2(aws_access_key_id=key, aws_secret_access_key=access)
c2.get_all_instances([instanceId])
它有效,但还有其他方法来获取实例吗?
我问的原因是我收到UnauthorizedOperation
请求的get_all_instances
,所以我更愿意更改请求,而不是安全设置。
答案 0 :(得分:16)
自OP提出问题以来,也许boto
已经发展,但这值得在此添加最新答案:
reservations = ec2conn.get_all_instances(instance_ids=['i-12345678'])
instance = reservations[0].instances[0]
答案 1 :(得分:7)
您可以尝试使用
reservations = ec2_conn.get_all_instances(filters={'instance-id' : 'i-xxxxxxxx'})
new_instance = reservations[0].instances[0]
一定会奏效。
答案 2 :(得分: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().