Подтвердить что ты не робот

Отображение имени экземпляра EC2 с использованием Boto 3

Я не уверен, как отобразить имя моего экземпляра в AWS EC2, используя boto3

Это код, который у меня есть:

import boto3

ec2 = boto3.resource('ec2', region_name='us-west-2')
vpc = ec2.Vpc("vpc-21c15555")
for i in vpc.instances.all():
    print(i)

То, что я получаю взамен,

...
...
...
ec2.Instance(id='i-d77ed20c')

введите описание изображения здесь

Я могу изменить i на i.id или i.instance_type, но когда я попробую name, я получаю:

AttributeError: 'ec2.Instance' object has no attribute 'name'

Каков правильный способ получить имя экземпляра?

4b9b3361

Ответ 1

Могут быть другие способы. Но с вашей кодовой точки зрения должно работать следующее.

>>> for i in vpc.instances.all():
...   for tag in i.tags:
...     if tag['Key'] == 'Name':
...       print tag['Value']

Одно решение для линейки, если вы хотите использовать мощное понимание Python:

inst_names = [tag['Value'] for i in vpc.instances.all() for tag in i.tags if tag['Key'] == 'Name']
print inst_names