如何将AWS中给定卷的特定标记与boto匹配?

时间:2014-09-16 20:01:01

标签: python amazon-web-services amazon-ec2 boto

我要做的是检查卷是否包含某个标记,即is_managed。如果卷具有标记,请跳过它,否则将标记添加到卷中。

volumes = conn.get_all_volumes()
tags = conn.get_all_tags()

for volume in volumes:
  for tag in tags:
    if tag.name.startswith('is_managed'):
      pass
    else:
      volume.add_tag('is_managed', True)

此代码有效(有点),但它会迭代所有标记,即使它们与我正在搜索的条件不匹配。因此它最终会添加is_managed标记,但它会错误地计算要匹配的标记数量,加上它真的很慢。

如何查看单个代码以查看其是否符合我要查找的条件?

1 个答案:

答案 0 :(得分:5)

你通过调用这个来获取conn的所有标签:tags = conn.get_all_tags()
你想要的是得到当前音量的所有标签,所以你想做类似的事情:

volumes = conn.get_all_volumes()
for volume in volumes:
    if not 'is_managed' in volume.tags:
      volume.add_tag('is_managed', True)