3

伙计们,我不仅试图检索正在运行的机器的实例 ID,还试图检索我在 aws 控制台中添加到它们的别名。

这是正确的方法吗?我没有得到任何有趣的东西......

import boto
botoEC2 = boto.connect_ec2('asdf','asdfasdfasdfasdf')
rsv = botoEC2.get_all_instances()
tags = botoEC2.get_all_tags()
print tags
dir (tags)
print tags
print tags.status
print tags.pop
print tags.count
print tags.tagSet
print tags.requestId
print tags.index
print tags.
print tags.requestId
print tags.index
print tags.key_marker

print tags

输出:[标签:ec2tag,标签:名称,标签:名称,标签:名称,标签:名称,标签:名称,标签:名称,标签:名称,标签:名称,标签:名称,标签:名称,标签:名称,标签:ec2tag,标签:名称,标签:名称,标签:名称,标签:名称,标签:名称]

谢谢!

4

1 回答 1

6

您可以获取所有标签

import boto
conn = boto.connect_ec2('asdf','asdfasdfasdfasdf')

tags = conn.get_all_tags()
for tag in tags:
    print tag.name, tag.value

或者您可以获取仅与实例关联的标签

reservation = conn.get_all_instances()[0]
# Yeah I don't know why they have these stupid reservation objects either...
instance = reservation.instances[0]
print instance.tags
# prints a dictionary of the tags {'Name': 'Given name'}

2014 年 4 月更新: 获取所有实例将在不久的将来改变它的行为。有趣的是,它将开始返回 EC2 实例列表。您应该使用get_all_reservationsnow 以避免在下一次主要版本更新期间出现代码损坏。

于 2012-09-25T21:43:43.427 回答