如何使用 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: 更准确。