0 votes
1 view
in AWS by (18.2k points)

I'm not sure how to display the name of my instance in AWS EC2 using boto3

This is some of the code I have:

import boto3

ec2 = boto3.resource('ec2', region_name='us-west-2')

vpc = ec2.Vpc("vpc-21c15555")

for i in vpc.instances.all():

    print(i)

What I get in return is

...

...

...

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

image

I can change i to be i.id or i.instance_type but when I try name I get:

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

What is the correct way to get the instance name?

1 Answer

0 votes
by (42.5k points)

According to your code, this should work:

>>> for i in vpc.instances.all():

...    for tag in i.tags:

...      if tag['Key'] == 'Name':

...        print tag['Value']

Using Python's list comprehension tool:

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

print inst_names

Related questions

Welcome to Intellipaat Community. Get your technical queries answered by top developers !


Categories

...