You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用boto3分页查询获取全部AWS EBS卷详情并导出为CSV格式

boto3全量获取EBS卷信息并导出CSV实现方案

实现逻辑说明

AWS EC2的describe_volumes接口默认单次最多返回50条EBS卷记录,超过该数量时结果会被截断,需要用返回的NextToken拉取下一页数据。直接使用boto3内置的Paginator分页器可自动处理全量分页逻辑,无需手动维护token,适配任意数量的EBS卷查询。

完整可运行脚本

import boto3
import csv

# 初始化EC2客户端,如需指定区域可添加region_name参数,例如region_name='cn-north-1'
ec2 = boto3.client('ec2')

# 初始化分页器,自动处理所有分页请求
paginator = ec2.get_paginator('describe_volumes')
page_iterator = paginator.paginate()

# 定义导出CSV的字段,可根据需求自行增删
export_fields = [
    'VolumeId',
    'InstanceId',
    'VolumeType',
    'SizeGB',
    'Status',
    'CreateTime',
    'AvailabilityZone'
]
output_path = './ebs_volumes_full.csv'

all_volume_data = []
for page in page_iterator:
    for volume in page['Volumes']:
        # 处理挂载实例ID,未挂载返回空值,多挂载场景用逗号分隔多个实例ID
        attached_instances = [attach['InstanceId'] for attach in volume.get('Attachments', [])]
        instance_id_str = ','.join(attached_instances) if attached_instances else ''
        
        # 组装单条卷数据,可按需扩展字段
        volume_item = {
            'VolumeId': volume['VolumeId'],
            'InstanceId': instance_id_str,
            'VolumeType': volume['VolumeType'],
            'SizeGB': volume['Size'],
            'Status': volume['State'],
            'CreateTime': volume['CreateTime'].strftime('%Y-%m-%d %H:%M:%S'),
            'AvailabilityZone': volume['AvailabilityZone']
        }
        all_volume_data.append(volume_item)

# 写入CSV文件
with open(output_path, 'w', newline='', encoding='utf-8') as f:
    writer = csv.DictWriter(f, fieldnames=export_fields)
    writer.writeheader()
    writer.writerows(all_volume_data)

print(f"导出完成,共获取{len(all_volume_data)}条EBS卷记录,文件路径:{output_path}")

常用调整说明

  • 新增标签导出:可通过volume.get('Tags', [])获取卷标签,遍历后将需要的标签值加入volume_item即可
  • 条件过滤查询:在paginate()方法中传入Filters参数可实现过滤,例如只查询已挂载的卷:paginator.paginate(Filters=[{'Name': 'status', 'Values': ['in-use']}])
  • 跨区域批量查询:可遍历所有需要查询的区域,每个区域初始化一个EC2客户端执行查询逻辑,合并结果后统一导出

内容的提问来源于stack exchange,提问作者Dexter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 09:45:04