使用 Boto 3 显示 EC2 实例名称
Displaying EC2 Instance name using Boto 3
我不确定如何使用 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)
我在return中得到的是
...
...
...
ec2.Instance(id='i-d77ed20c')
我可以将 i
更改为 i.id
或 i.instance_type
但是当我尝试 name
我得到:
AttributeError: 'ec2.Instance' object has no attribute 'name'
获取实例名称的正确方法是什么?
在 AWS EC2 中,一个实例被标记,名称为tag。
为了获取给定实例的名称标签的值,您需要查询该标签的实例:
见Obtaining tags from AWS instances with boto
可能还有其他方法。但从您的代码角度来看,以下内容应该有效。
>>> 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
我不确定如何使用 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)
我在return中得到的是
...
...
...
ec2.Instance(id='i-d77ed20c')
我可以将 i
更改为 i.id
或 i.instance_type
但是当我尝试 name
我得到:
AttributeError: 'ec2.Instance' object has no attribute 'name'
获取实例名称的正确方法是什么?
在 AWS EC2 中,一个实例被标记,名称为tag。
为了获取给定实例的名称标签的值,您需要查询该标签的实例:
见Obtaining tags from AWS instances with boto
可能还有其他方法。但从您的代码角度来看,以下内容应该有效。
>>> 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