दिलचस्प है, ऐसा लगता है कि बहुत से लोगों को यह समस्या नहीं थी। मेरे लिए यह सही करने में सक्षम होना बहुत महत्वपूर्ण था। इस कार्यक्षमता के बिना कोई nondefault subnet
में लॉन्च किए गए उदाहरणों से इंटरनेट तक पहुंचने में सक्षम नहीं है।
बोटो प्रलेखन ने कोई मदद नहीं दी, हाल ही में एक संबंधित बग था, देखें: https://github.com/boto/boto/pull/1705।
यह नोट करना subnet_id
और सुरक्षा groups
नेटवर्क इंटरफेस NetworkInterfaceSpecification
बजाय run_instance
को उपलब्ध कराया जाना है कि महत्वपूर्ण है।
import time
import boto
import boto.ec2.networkinterface
from settings.settings import AWS_ACCESS_GENERIC
ec2 = boto.connect_ec2(*AWS_ACCESS_GENERIC)
interface = boto.ec2.networkinterface.NetworkInterfaceSpecification(subnet_id='subnet-11d02d71',
groups=['sg-0365c56d'],
associate_public_ip_address=True)
interfaces = boto.ec2.networkinterface.NetworkInterfaceCollection(interface)
reservation = ec2.run_instances(image_id='ami-a1074dc8',
instance_type='t1.micro',
#the following two arguments are provided in the network_interface
#instead at the global level !!
#'security_group_ids': ['sg-0365c56d'],
#'subnet_id': 'subnet-11d02d71',
network_interfaces=interfaces,
key_name='keyPairName')
instance = reservation.instances[0]
instance.update()
while instance.state == "pending":
print instance, instance.state
time.sleep(5)
instance.update()
instance.add_tag("Name", "some name")
print "done", instance
ऐसा करने के दौरान किसी को भी यह त्रुटि मिलती है? 'सहयोगी PublicIPAddress पैरामीटर को आईडी के साथ नेटवर्क इंटरफ़ेस के लिए निर्दिष्ट नहीं किया जा सकता है। – qwwqwwq
हां, जाहिर है कि यदि आप सार्वजनिक आईपी चाहते हैं तो आप पहले इंटरफ़ेस नहीं बना सकते हैं। मैं boto3 के लिए एक उत्तर जोड़ूंगा जो इसे दर्शाता है। [ओह रुको, मुझे नहीं करना है। बैरीकु के देखें] –