使用Boto 3显示EC2实例名称

Lio*_*cer 17 python amazon-ec2 amazon-web-services python-3.x boto3

我不确定如何使用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)
Run Code Online (Sandbox Code Playgroud)

我得到的回报是

...
...
...
ec2.Instance(id='i-d77ed20c')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我可以改变ii.id或者i.instance_type当我尝试时,name我得到:

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

获取实例名称的正确方法是什么?

hel*_*loV 18

可能还有其他方式.但是从代码的角度来看,以下内容应该可行.

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

如果你想使用Python强大的列表理解,一个线性解决方案:

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


Rod*_*o M 6

在AWS EC2实例被标记了名称标签.

为了获取给定实例的Name标记的值,您需要查询该标记的实例:

请参阅使用boto从AWS实例获取标记