0

我正在编写一个python脚本来检查我所有正在运行的实例是否有ebs快照......

rsv = self.botoEC2.get_all_instances()
for r in rsv:
  ins = r.instances[0]
  blockDevice = self.getInstanceAttribute(ins,"blockDeviceMapping")
  print blockDevice

def getInstanceAttribute(self,instance,attribute):
    return instance.get_attribute(attribute)

输出:

{u'blockDeviceMapping': {u'/dev/sda1': <boto.ec2.blockdevicemapping.BlockDeviceType object at 0x10d5faed0>}}

我是新手。我在正确的道路上吗?

我需要先获取blockDeviceMapping,然后调用音量函数吗?

如何获取实际的卷 ID,以便检查现有快照?

4

1 回答 1

3

听起来您想遍历所有正在运行的实例,然后遍历连接到这些实例的所有 EBS 卷。那正确吗?如果是这样,我会做这样的事情:

import boto

ec2 = boto.connect_ec2()
reservations = ec2.get_all_instances(filters={'instance-state-name': 'running'})
volumes = []
for r in reservations:
    for i in r.instances:
        volumes.extend(ec2.get_all_volumes(filters={'attachment.instance-id': i.id}))

此时,卷将包含附加到正在运行的 EC2 实例的所有卷对象的列表。

于 2012-09-20T03:08:02.533 回答