如何使用 boto 获取 EC2 实例标签 "Name" 的值?
How can I get the value of the EC2 instance tag "Name" with boto?
我正在使用实例 ID。我可以获得标签,但我无法弄清楚如何过滤实例 ID 和标签 "Name" 或索引和 return 名为 "Name"[= 的标签的值12=]
我最终抓取了所有标签并遍历它们直到找到我想要的那个,这不可能是正确的。
tags = conn.get_all_tags({'resource-id': instance_id})
for tag in tags:
if 'Name' in tag.name:
name = tag.value
你有更好的办法:
conn.get_all_tags(filters={'tag-key': 'Name', 'resource-id': instance_id})
我觉得你这样做的方式很好。您总是可以将其作为抽象包装在函数调用中:
def get_instance_tag(all_tags, tag_name):
for tag in all_tags:
if tag_name == tag.name:
return tag.value
return None
name = get_instance_tag(conn.get_all_tags({'resource-id': instance_id}), 'Name')
请注意 if tag_name == tag.name:
比 if tag_name in tag.name:
更准确。
我正在使用实例 ID。我可以获得标签,但我无法弄清楚如何过滤实例 ID 和标签 "Name" 或索引和 return 名为 "Name"[= 的标签的值12=]
我最终抓取了所有标签并遍历它们直到找到我想要的那个,这不可能是正确的。
tags = conn.get_all_tags({'resource-id': instance_id})
for tag in tags:
if 'Name' in tag.name:
name = tag.value
你有更好的办法:
conn.get_all_tags(filters={'tag-key': 'Name', 'resource-id': instance_id})
我觉得你这样做的方式很好。您总是可以将其作为抽象包装在函数调用中:
def get_instance_tag(all_tags, tag_name):
for tag in all_tags:
if tag_name == tag.name:
return tag.value
return None
name = get_instance_tag(conn.get_all_tags({'resource-id': instance_id}), 'Name')
请注意 if tag_name == tag.name:
比 if tag_name in tag.name:
更准确。