AWS BOTO - 使用标记查找ec2实例的卷ID

时间:2015-04-08 11:19:16

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

我们为ec2实例定义了标签。我们想使用python boto模块通过使用标签来获取volumeId或EBS卷的列表。已经为该实例创建了标签。我们想使用名称tage,在这种情况下是“dev”并列出与之关联的EBS卷。 请帮助

1 个答案:

答案 0 :(得分:3)

最好尝试编写一些代码来尝试解决问题,然后发布一个特定的问题,如果该代码不起作用。如果您在开始时遇到问题,可以参考以下几点。

您需要做的第一件事是找到具有name=<somevalue>形式的特定标记的所有实例。在boto中,您将使用filter方法的get_all_instances参数来完成此操作。这样的事情应该有效:

reservations = conn.get_all_instances(filters={'name': ['somevalue']})

这将返回与查询匹配的Reservation个对象的列表。 Reservation对象内部是一个名为instances的属性,它是Instance个对象的列表。

对于该列表中的每个Instance对象,您将需要查找与该实例关联的EBS卷。同样,您将需要使用filters参数来完成此任务。在这种情况下,您需要的过滤器名称为attachment.instance-id

volumes = conn.get_all_volumes(filters={'attachment.instance-id': [instance.id]})

其中instance是第一次调用返回的Instance个对象之一。这将返回当前附加到Volume的所有EBS卷的instance个对象列表。

我希望有所帮助。尝试编写代码然后如果遇到特定问题,请在此处询问。