2012-08-23 17 views
7

मुझे इंस्टेंस-आईडी द्वारा इंस्टेंस प्राप्त करने की आवश्यकता है, क्या यह सभी उदाहरणों की सूची के बिना इसे करना संभव है?उदाहरण के लिए उदाहरण प्राप्त करें-आईडी

मैं कोशिश की है:

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

यह काम करता है, लेकिन वहाँ उदाहरण प्राप्त करने के लिए किसी अन्य तरह से है?

कारण मैं पूछ रहा हूं कि मुझे UnauthorizedOperationget_all_instances अनुरोध के लिए प्राप्त हुआ है, इसलिए मैं अनुरोध को बदलना चाहूंगा, न कि सुरक्षा सेटिंग्स।

+0

आपको अनधिकृत ऑपरेशन कब मिला? मेरा मतलब है जिसके बाद कमांड निष्पादन –

+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 समय ओपी प्रश्न पूछा के बाद से विकसित किया गया है, लेकिन यह यहां जोड़ा जाना है तिथि जवाब देने के लिए ऊपर के हकदार:

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

यह आपको आरक्षण देता है, उदाहरण के लिए नहीं। – Nate

+0

@Nate: एपीआई से मेल खाने के लिए अपडेट किया गया – 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(). 
संबंधित मुद्दे