我正在编写一个 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>}}
我是boto的新手。我在正确的道路上吗?
我是否需要先获取blockDeviceMapping
,然后调用音量函数?
如何获取实际的卷ID,以便检查现有快照?
答案 0 :(得分: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实例的所有Volume对象的列表。