我使用的是Python 2.7和Boto.latest。
我正在创建动态广告资源脚本,我想列出附加到每个实例的存储设备
示例:
ID: i-3rblah
Storage:
- /dev/sda
- /dev/sdb
- /dev/sdc
试过:
for reservation in reservations:
for i in reservation.instances:
volumes = conn.get_all_volumes(filters={'attachment.instance-id': i.id})
print i.__dict__
print volumes.__dict__
所以我有一些音量信息,但不是VolumeID映射的内容。
答案 0 :(得分:1)
我认为您希望实例BlockDeviceMapping
。根据上面的示例,以下内容应该找到作为字典的实例的block_device_mapping
。字典中的每个键都是设备名称,值为BlockDeviceType
对象,其中包含与该设备名称关联的块设备的信息。
for reservation in reservations:
for instance in reservation.instances:
bdm = instance.block_device_mapping
for device in bdm:
print('Device: {}'.format(device)
bdt = bdm[device]
print('\tVolumeID: {}'.format(bdt.volume_id))
print('\tVolume Status: {}'.format(bd.volume_status))
这应该打印如下:
Device: /dev/sda1
VolumeID: vol-1d011806
Volume Size: attached
BlockDeviceType
对象中还有其他字段。您应该能够在Boto文档中找到更多相关信息。
答案 1 :(得分:0)
使用instance-:
获取所有音量标识inst=conn.get_all_instances()
for reservation in inst:
for i in reservation.instances:
volumes = conn.get_all_volumes(filters={'attachment.instance-id': i.id})
print "This instance:",i.id," is attached to ", volumes