Не удалось получить publi c ip для ec2-instance через boto3 python - PullRequest
0 голосов
/ 16 июня 2020

Я пытаюсь получить информацию ec2 с помощью программы python, но я не могу получить значение для publi c ip-адреса ... который печатается как None, хотя к нему прикреплен publi c ip (i можно увидеть из консоли)

Что я пробовал:

inst_id = []
for reserv in res_inst['Reservations']:
    instance = reserv['Instances']
    for inst in instance:
        ip_addr = inst['PrivateIpAddress']
        #print(inst)
        if (ip == ip_addr):
            inst_id = inst['InstanceId']
            inst_type = inst['InstanceType']
            image_id = inst['ImageId']
            vpc_id = inst['VpcId']
            key_name = inst['KeyName']
            #pub_ip = inst[u'PublicIpAddress']
            pub_ip = inst.get(u'PublicIpAddress')
            print(inst_type)
            print(inst_id)
            print(key_name)
            print(vpc_id)
            print(pub_ip)
            print(image_id)
            az = inst['Placement']['AvailabilityZone']
            print(az)
            for s1 in inst['SecurityGroups']:
                sg_name = s1['GroupName']
                print(sg_name)

В приведенном выше коде эти синтаксисы не работают для publi c ip .. он говорит об ошибке ключа

pub_ip = inst[u'PublicIpAddress']
pub_ip = inst['PublicIpAddress']

Приведенный ниже синтаксис работает, но дает значение None

pub_ip = inst.get(u'PublicIpAddress')

Вывод: я получаю все значения, кроме print (pub_ip), который печатается как None.

Я уверен когда я печатаю всю строку json из inst в приведенном выше коде, я вижу значение publi c ip, присутствующее в этом json словаре, однако при печати его высказывания None.

Может ли кто-нибудь предложить что я здесь не так делаю ...

1 Ответ

1 голос
/ 16 июня 2020

Цитата

Привет asp, попробуйте это ...

response= ec2_client.describe_instances()
for reservation in response['Reservations']:            
   for instance in reservation['Instances']:
      print(instance)

Надеюсь, это поможет .. @ r0ck

...