2012-08-23 191 views
7

我需要通過實例id獲取實例,是否可以在不請求所有實例列表的情況下執行實例?通過實例ID獲取實例

我已經試過:

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

它的工作原理,但有一些其他的方式來獲得實例?

我問的原因是我收到UnauthorizedOperationget_all_instances請求,所以我寧願更改請求,而不是安全設置。

+0

你什麼時候得到UnauthorizedOperation?我的意思是在執行哪個命令後 –

+0

c2.get_all_instances([instanceId]) – Francheska

回答

7

您可以

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

它肯定會工作試試。

15

也許boto自當時的OP問的問題發展而來,但這應有的最新答案在這裏添加:

reservations = ec2conn.get_all_instances(instance_ids=['i-12345678']) 
instance = reservations[0].instances[0] 
+0

這給出了預留,而不是實例。 – Nate

+0

@Nate:更新以匹配API – Jordan

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().