2016-01-12 12 views
12

Tôi không chắc chắn làm thế nào để hiển thị tên của dụ của tôi trong AWS EC2 sử dụng boto3Hiển thị tên EC2 Instance sử dụng Boto 3

Đây là một số mã tôi có:

import boto3 

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

Những gì tôi được đổi lại là

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

enter image description here

tôi có thể ch ange ii.id hoặc i.instance_type nhưng khi tôi cố gắng name tôi nhận được:

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

cách chính xác để có được tên dụ là gì?

Trả lời

12

Có thể có những cách khác. Nhưng từ quan điểm mã của bạn, những điều sau đây sẽ hoạt động.

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

Một giải pháp lót nếu bạn muốn sử dụng danh sách hiểu biết mạnh mẽ của Python:

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

Trong AWS EC2, phiên bản là được gắn thẻ với tên tag.

Để có được giá trị của thẻ tên cho một trường hợp nhất định, bạn cần phải truy vấn Ví dụ cho thẻ rằng:

Xem Obtaining tags from AWS instances with boto

Các vấn đề liên quan