如何通过AWS Cost and Usage相关API及命令行获取Resource ID
AWS Cost Explorer API获取Resource ID的替代方案
AWS Cost Explorer 原生的
getCostAndUsage接口仅返回聚合维度的成本统计数据,设计上不支持返回细粒度的单个资源ID(Resource ID),属于接口固有能力限制,和SDK调用逻辑无关。
可用的替代解决方案如下:
- 方案1:直接解析S3存储的CUR报告文件
你已经完成了包含Resource ID的Cost & Usage Report导出S3配置,这是获取全量、全时间范围资源级成本数据最稳定的方式。你可以在Java项目中集成AWS S3 SDK,先筛选出目标CSV文件,拉取到本地或内存后通过CSV解析工具(如OpenCSV)直接读取,即可获取每一条消费记录对应的Resource ID字段。
你现有使用的CLI拉取命令为:
转换为Java S3 SDK调用即可实现自动化拉取解析。aws s3 cp s3://xxxx/ C:/Projects --recursive --exclude "*" --include "xxxx.csv" - 方案2:调用
getCostAndUsageWithResources接口查询
如果你需要通过API直接获取数据而不想解析CSV文件,可以改用Cost Explorer客户端的getCostAndUsageWithResources方法,该接口专门支持返回资源级成本数据。使用时需要注意两个限制:- 仅支持查询时间范围内最近14天的成本数据
- 请求参数中必须将时间粒度
Granularity设置为DAILY
- 方案3:按标签维度间接关联资源
如果你仅需要查询部分特定资源的成本数据,可以提前为对应资源绑定唯一的成本标签,调用getCostAndUsage接口时按标签维度做聚合过滤,即可间接关联到对应资源的成本数据。
内容的提问来源于stack exchange,提问作者Thanuja
相关产品推荐
相关产品推荐

