сопоставлять экземпляры/тома AWS со снимками с помощью boto

Я пишу скрипт 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, а затем вызывать функции громкости?

Как мне получить фактический идентификатор тома, чтобы я мог проверить его на наличие существующих снимков?


person Cmag    schedule 19.09.2012    source источник


Ответы (1)


Похоже, вы хотите просмотреть все запущенные экземпляры, а затем просмотреть все тома 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}))

В этот момент тома будут содержать список всех объектов Volume, которые подключены к запущенным экземплярам EC2.

person garnaat    schedule 20.09.2012