【问题标题】:AWS BOTO - find volume ID of an ec2 instance using tagAWS BOTO - 使用标签查找 ec2 实例的卷 ID
【发布时间】:2015-04-08 22:26:20
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    最好尝试编写一些代码来尝试解决问题,然后在该代码不起作用时发布特定问题。如果您在入门时遇到问题,这里有一些提示。

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

    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 对象之一。这将返回当前附加到 instance 的所有 EBS 卷的 Volume 对象列表。

    我希望这会有所帮助。尝试编写代码,如果遇到具体问题,请在此处提问。

    【讨论】:

      猜你喜欢
      • 2013-10-31
      • 1970-01-01
      • 2011-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多