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

jmr*_*cha 2 python amazon-ec2 boto amazon-web-services

我想做的是检查一个卷是否包含某个标签,即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)
Run Code Online (Sandbox Code Playgroud)

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

如何查看单个标签以查看它是否符合我要查找的标准?

kip*_*odi 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)
Run Code Online (Sandbox Code Playgroud)