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

AWS Python脚本统计EC2实例按AMI分组无法拉取全量数据问题咨询

问题根因

你当前的脚本调用了describe_images接口,这个接口的作用是查询AWS镜像(AMI)的元数据,而非查询EC2实例列表,同时你创建的带自定义profile的session没有被实际使用,直接调用boto3.client会读取默认凭证配置,可能出现权限、区域不匹配导致数据不全的问题。

修正后完整代码
import boto3
import pprint

# 初始化带指定profile和区域的session
session = boto3.Session(profile_name='kenjiro310', region_name='us-east-2')
# 从session创建ec2客户端,确保使用指定的凭证和区域
ec2_client = session.client('ec2')

# 调用describe_instances接口拉取所有运行中的EC2实例,加过滤条件只保留运行中状态
response = ec2_client.describe_instances(
    Filters=[
        {
            'Name': 'instance-state-name',
            'Values': ['running']
        }
    ]
)

# 初始化统计字典
ami_count = {}

# 遍历返回的实例列表,按AMI分组统计
for reservation in response['Reservations']:
    for instance in reservation['Instances']:
        ami_id = instance['ImageId']
        # 计数累加
        if ami_id in ami_count:
            ami_count[ami_id] += 1
        else:
            ami_count[ami_id] = 1

# 输出统计结果
pprint.pprint(ami_count)
补充说明
  • 如果需要统计所有状态(包含已停止)的实例,删除Filters参数即可
  • 如果实例数量超过1000台,需要处理NextToken分页参数,循环拉取全量数据
  • 如果你还需要同步获取AMI的名称等信息,可以在统计完成后批量调用describe_images接口补充字段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:36:00