के साथ ईसी 2 उदाहरण के सार्वजनिक डीएनएस को पुनर्प्राप्त करना मैं आईटी 2 उदाहरणों के साथ बातचीत करने और ईटी 2 उदाहरणों के साथ बातचीत करने के लिए आईपीथॉन का उपयोग कर रहा हूं। यहाँ कोड मैं एक उदाहरण बनाने के लिए उपयोग कर रहा हूँ है:बीओटीओ 3
import boto3
ec2 = boto3.resource('ec2')
client = boto3.client('ec2')
new_instance = ec2.create_instances(
ImageId='ami-d05e75b8',
MinCount=1,
MaxCount=1,
InstanceType='t2.micro',
KeyName=<name_of_my_key>,
SecurityGroups=['<security_group_name>'],
DryRun = False
)
यह ठीक एक EC2 उदाहरण शुरू होता है, और मैं सार्वजनिक DNS नाम, एडब्ल्यूएस कंसोल से आईपी और अन्य जानकारी प्राप्त कर सकते हैं। लेकिन, जब मैं, सार्वजनिक डीएनएस Boto का उपयोग कर पाने के लिए ऐसा करने से प्रयास करें:
new_instance[0].public_dns_name
रिटर्न खाली उद्धरण। फिर भी, अन्य उदाहरण विवरण, जैसे:
new_instance[0].instance_type
सही जानकारी देता है।
कोई विचार? धन्यवाद।
संपादित करें:
तो अगर मैं करता हूँ:
def get_name(inst):
client = boto3.client('ec2')
response = client.describe_instances(InstanceIds = [inst[0].instance_id])
foo = response['Reservations'][0]['Instances'][0]['NetworkInterfaces'][0]['Association']['PublicDnsName']
return foo
foo = get_name(new_instance)
print foo
तो यह सार्वजनिक डीएनएस वापस आ जाएगी। लेकिन यह मुझे समझ में नहीं आता है कि मुझे यह सब करने की ज़रूरत क्यों है।