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

如何统计不同AWS资源类型数量?有无Boto API统计单服务资源数?

统计AWS资源数量的方法

一、统计不同AWS资源类型的总数量

下面是几种常用的方案,各有适用场景:

1. AWS Config的get_discovered_resource_counts() API

这是你已经了解到的方法,它能直接返回已发现的各类资源的数量统计,但前提是必须在你的AWS账户中启用了AWS Config服务。用Boto3调用的示例代码如下:

import boto3

config_client = boto3.client('config')
response = config_client.get_discovered_resource_counts(
    resourceTypes=['AWS::EC2::Instance', 'AWS::IAM::User', 'AWS::S3::Bucket']  # 按需指定要统计的资源类型
)

for resource in response['resourceCounts']:
    print(f"资源类型: {resource['resourceType']}, 数量: {resource['count']}")

如果不传入resourceTypes参数,会返回所有已发现的资源类型的统计数据。

2. AWS Resource Groups Tagging API

这个API可以统计带标签的资源数量(未打标签的资源会被遗漏),适合关注有标签资源的场景。示例代码:

import boto3

tagging_client = boto3.client('resourcegroupstaggingapi')
response = tagging_client.get_resources(
    ResourceTypeFilters=['AWS::EC2::Instance']
)
instance_count = len(response['ResourceTagMappingList'])
print(f"带标签的EC2实例数量: {instance_count}")

二、单个AWS服务内的资源统计(以IAM为例)

很遗憾,包括IAM在内的大部分AWS服务,并没有提供专门的「获取资源总数」的API。官方推荐的方式是分页调用列表类API并计数——但你可以优化这个过程:只统计数量,不处理所有资源的详细数据,效率其实很高。

比如针对IAM的Users、Roles、Groups,用Boto3分页器统计的示例:

import boto3

def count_iam_resource(client, paginator_name):
    count = 0
    paginator = client.get_paginator(paginator_name)
    for page in paginator.paginate():
        # 根据API名称自动匹配结果键(比如list_users对应返回的Users字段)
        resource_key = paginator_name.split('_')[-1] + 's'
        count += len(page[resource_key])
    return count

iam_client = boto3.client('iam')

user_count = count_iam_resource(iam_client, 'list_users')
role_count = count_iam_resource(iam_client, 'list_roles')
group_count = count_iam_resource(iam_client, 'list_groups')

print(f"IAM资源统计: 用户 {user_count} 个, 角色 {role_count} 个, 用户组 {group_count} 个")

这种方式通过分页器自动处理分页逻辑,只累加每页的资源数量,不会占用过多内存,哪怕是资源量较大的账户也能高效运行。

补充说明

其他服务的统计逻辑类似:

  • EC2实例数量:用describe_instances分页器,统计每页Reservations下的Instances数量
  • S3存储桶数量:直接调用list_buckets,取Buckets列表的长度(S3的该接口无分页限制)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:46:03