Как получить общий DNS из созданного экземпляра AWS программой BOTO3? - PullRequest
0 голосов
/ 24 октября 2018

Возникла та же проблема, что и в Извлечение общедоступных DNS экземпляра EC2 с помощью BOTO3

Сначала я создаю и запускаю экземпляр:

r = client.run_instances(
ImageId=aws_config['base_ami'], 
MinCount=1, 
MaxCount=1,
KeyName=aws_config['key_name'],
InstanceType="t2.small",
NetworkInterfaces=[
{
    'DeviceIndex': 0,
    'SubnetId' : aws_config['subnet'],
    'Groups': aws_config['security_groups'],
    'AssociatePublicIpAddress': True            
}]                     
)
instance = r["Instances"][0]

Ответ предлагает использоватьinstance.load () для загрузки в экземпляр нового публичного IP-адреса DNS.Кстати, я вижу общедоступный IP-адрес из консоли AWS

В моей программе после instance.load ()

instance.load()

AttributeError: у объекта 'dict' нет атрибута AttributeError:Атрибут 'load

1 Ответ

0 голосов
/ 24 октября 2018

Проблема в том, что client.run_instances не возвращает список экземпляров EC2, он возвращает список словарей экземпляров.

Чтобы преобразовать возврат в экземпляр EC2, я сделал следующее после приведенного выше кода:

ec2 = boto3.resource('ec2')
inst = ec2.Instance(instance['InstanceId']) 

Затем inst.load () работает и загружает общедоступный DNS IP

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...