amazon-ec2 - 试图获取 ec2 图像列表,包括 blockDeviceMappings.snpshotID
问题描述
我需要获取包括bloak 设备快照 ID在内的 ec2 图像列表,该列表应仅包含属于我的图像。到现在为止,我已经设法在没有额外信息的情况下获得图像 iD 列表
另外,有没有办法获取我拥有的列表而不是添加我的 ID?
import boto3
ec2 = boto3.resource('ec2',aws_access_key_id = "ID",aws_secret_access_key = "ID",region_name = "eu-west-1")
filter=[{'Name':'owner-id','Values':['MY-ID']}]
count_aim = 1
for each_aim in ec2.images.filter(Filters=filter):
print (each_aim)
count_aim = count_aim + 1
print (count_aim)
解决方案
我认为以下应该做:
from collections import defaultdict
from pprint import pprint
import boto3
ec2 = boto3.resource('ec2', aws_access_key_id = 'dddddd', aws_secret_access_key="ggggfffff",region_name = "eu-west-1")
filter=[{'Name':'owner-id','Values':['123455']}]
block_ids = defaultdict(list)
for each_aim in ec2.images.filter(Filters=filter):
for block_map in each_aim.block_device_mappings:
block_ids[each_aim.id].append(block_map['Ebs']['SnapshotId'])
pprint(dict(block_ids))
示例输出:
{'ami-02b8a850c975bb610': ['snap-02f277ce5b3b670fc'],
'ami-06422cd44a94bab38': ['snap-0b0c9048f46992ee1']}
推荐阅读
- javascript - 变量声明如何在 for 循环中工作
- python - 错误“输入图像必须是非零大小”的原因是什么?
- google-apps-script - 使用 GAS 在 Google Docs 中将换行代码更改为非斜体或非粗体
- linux - 如何在创建 Linux 映像时添加服务
- memory - NDIS 自旋锁是否用作 DMA 的内存屏障?
- javascript - 动画具有相同类的多个标题
- javascript - 如何让 Sequelize 迁移文件中的 defaultValue 从某个列中获取值?
- python - 使用 MT5 生成时添加启动令牌
- graphics - 如何使用 mitsuba 渲染器渲染带有纹理的 OBJ 文件?
- firebase - 同时用户的firebase性能监控