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

AWS BOTO - find volume ID of an ec2 instance using tag

我们已经为我们的 ec2 实例定义了标签。我们想使用 python boto 模块通过标签获取 volumeId 或 EBS 卷的列表。已为实例创建标签。我们想使用在本例中为 "dev" 的名称标签并列出与其关联的 EBS 卷。 请帮忙

最好尝试编写一些代码来尝试解决问题,然后 post 如果该代码不起作用,则提出一个具体问题。如果您在开始时遇到问题,这里有一些提示。

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

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

这将 return 与查询匹配的 Reservation 个对象的列表。 Reservation 对象中有一个名为 instances 的属性,它是 Instance 个对象的列表。

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

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

其中 instanceInstance 对象之一 return 从第一次调用中编辑。这将 return 当前附加到 instance 的所有 EBS 卷的 Volume 个对象列表。

希望对您有所帮助。尝试编写代码,然后如果您 运行 遇到具体问题,请在此处提问。