使用 Boto 3 显示 EC2 实例名称
Posted
技术标签:
【中文标题】使用 Boto 3 显示 EC2 实例名称【英文标题】:Displaying EC2 Instance name using Boto 3 【发布时间】:2016-04-17 13:09:17 【问题描述】:我不确定如何使用 boto3
在 AWS EC2 中显示我的实例名称
这是我的一些代码:
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'
获取实例名称的正确方法是什么?
【问题讨论】:
【参考方案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
【讨论】:
【参考方案2】:在 AWS EC2 中,实例被标记,名称为 tag。
为了获取给定实例的名称标签的值,您需要查询该标签的实例:
见Obtaining tags from AWS instances with boto
【讨论】:
以上是关于使用 Boto 3 显示 EC2 实例名称的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Boto 启动 EC2 实例,指定 EBS 的大小?
使用boto3 Python SDK返回AWS EC2可用性区域属性