如何使用AWS SDK for PHP按账户获取账单详情?
AWS SDK for PHP 按账户维度获取账单详情的实现说明
该需求完全具备可实现性,无需额外开发自定义采集逻辑,可通过AWS官方原生的成本类服务API完成跨账户维度的账单查询。
适配的核心API选型
- 最贴合需求的核心接口:
Aws\CostExplorer\CostExplorerClient提供的getCostAndUsage方法- 实现按账户维度拆分的核心配置:在接口入参的
GroupBy字段中,指定维度类型为LINKED_ACCOUNT,接口返回的结果会自动按照关联的成员账户ID做分组聚合 - 支持灵活配置查询条件:可自定义时间范围、数据粒度(小时/日/月)、筛选规则(比如只拉取指定服务、指定区域的消费明细),适配绝大多数账单分析场景
- 实现按账户维度拆分的核心配置:在接口入参的
- 细分场景的补充接口
- 若需要获取资源级别的逐笔原始消费明细,可调用
CostExplorerClient提供的getUsageReport方法,同样支持LINKED_ACCOUNT维度的分组拆分 - 若需要获取已配置的标准化成本账单报表数据,可调用
Aws\CostandUsageReportService\CostandUsageReportServiceClient的报表拉取接口,直接读取预先生成的账户维度账单文件
- 若需要获取资源级别的逐笔原始消费明细,可调用
实现前置注意事项
- 权限配置:调用接口的IAM身份需要授予对应Cost Explorer服务的操作权限,至少包含
ce:GetCostAndUsage、ce:GetUsageReport这类核心操作权限 - 跨账户数据获取前提:需要提前开通AWS Organizations的合并账单功能,将所有需要统计的成员账户纳入同一组织的账单聚合范围,否则接口无法拉取到非当前登录账户的账单数据
- 数据时效说明:当月产生的消费数据会存在12-24小时的结算延迟,接口返回的当月数据为已完成结算的部分,未出账的实时预估数据可通过同客户端的
getCostForecast方法做补充
注意:不要误用Billing模块下的旧版账单API,这类旧接口仅支持查询当前调用身份所属账户的账单,无法实现跨关联账户的维度拆分。
内容的提问来源于stack exchange,提问作者mahethekiller
相关产品推荐
相关产品推荐

