使用 Azure REST API 查看企业合约计费信息

成本管理 API 可帮助你查看和管理 Azure 成本。

特别是成本详细信息 API,通过提供详细的未聚合成本数据来帮助查看和管理 Azure 成本。

此异步 API 允许为企业协议(EA)计费帐户、部门或注册帐户生成和下载成本报告。

本文介绍如何使用成本详细信息 API 检索与 EA 计费帐户、部门或注册帐户关联的计费信息。

小窍门

此 REST API 非常适合自动化方案,需要定期以编程方式检索成本数据。 可以将它集成到脚本、应用程序或自动化工作流中,以拉取成本报表进行分析、预算或合规性报告。

重要

成本详细信息 API 是异步的和基于报表的。 提交请求以生成可下载的报告文件,查询其完成情况,然后从安全 URL 下载生成的文件。

成本详细信息 API 的工作原理

成本详细信息 API 使用异步工作流:

  1. 创建报表:提交 POST 请求以生成 EA 范围的成本详细信息报表
  2. 轮询状态:检查操作状态,直至报告完成
  3. 下载报表:使用提供的下载 URL 获取包含成本数据的 CSV 文件

注释

API 支持 ActualCostAmortizedCost 指标。 ActualCost 在如原样计费时显示费用,而 AmortizedCost 将预留和节省计划的购买成本在其使用期限内平均分摊,并将成本重新分配给使用预留或节省计划的资源。 例如,1 年期保留费用为 365 美元,在购买日期显示为单笔费用。 在 AmortizedCost 中,相同的 365 美元作为每日 1.00 美元的使用费分散在受益于预留的使用情况中。

在不同的 EA 范围内工作

成本详细信息 API 支持三个 EA 范围,每个范围提供不同的成本聚合级别:

  • 计费帐户范围:整个 EA 计费帐户的成本详细信息
  • 部门范围:为特定部门中的所有帐户聚合的成本详细信息
  • 注册帐户范围:注册中特定帐户的成本详细信息

步骤 1:创建成本详细信息报表

提交 POST 请求以生成成本详细信息报告:

POST https://management.chinacloudapi.cn/providers/Microsoft.Billing/{scope}/providers/Microsoft.CostManagement/generateCostDetailsReport?api-version=2025-03-01
Content-Type: application/json
Authorization: Bearer {access-token}

{
  "metric": "ActualCost",
  "timePeriod": {
    "start": "2025-07-01",
    "end": "2025-07-31"
  }
}

根据 {scope} 所需范围而异的位置:

  • 计费帐户范围billingAccounts/{billingAccountId}
  • 部门范围departments/{departmentId}
  • 注册帐户范围enrollmentAccounts/{enrollmentAccountId}

步骤 2:轮询报告状态

查看操作状态,直到报告完成。

GET https://management.chinacloudapi.cn/providers/Microsoft.Billing/{scope}/providers/Microsoft.CostManagement/costDetailsOperationStatus/{operationId}?api-version=2025-03-01
Authorization: Bearer {access-token}

其中 {scope} 使用与步骤 1 中相同的值:

  • 计费帐户范围billingAccounts/{billingAccountId}
  • 部门范围departments/{departmentId}
  • 注册帐户范围enrollmentAccounts/{enrollmentAccountId}

步骤 3:下载报表

当报表状态显示“已完成”时,响应中会包括一个 blobLink,用于下载包含您选择的范围的成本详细信息的 CSV 文件。

请求参数

请求正文支持以下参数:

  • metric - 请求的报表类型。 可以是 ActualCost 或者 AmortizedCost。 如果未指定,则默认为 ActualCost.
  • timePeriod - 数据请求的日期范围。 以 YYYY-MM-DD 格式指定 startend 日期。 不能与 invoiceId 或 billingPeriod 参数一起使用。
  • invoiceId - 所请求的数据发票。 微软客户协议的客户在计费档案或客户范围内支持此参数。 不能与 billingPeriod 或 timePeriod 参数一起使用。
  • billingPeriod - 请求的数据计费周期。 企业协议客户支持此参数。 使用 YearMonth 格式(例如,202408)。 不能与 invoiceId 或 timePeriod 参数一起使用。

注释

如果在请求正文中未提供 timePeriod、invoiceId 或 billingPeriod 参数,API 将返回当前月份的成本。

以下标头是必需的:

请求标头 说明
Content-Type: 必需。 设置为 application/json
Authorization: 必需。 设置为有效的 Bearer访问令牌

响应

初始响应 (HTTP 202 已接受)

初始 POST 请求返回状态代码 202(已接受),其中包含响应标头:

Name 类型 说明
位置 String 用于检查异步操作状态的 URL
Retry-After 整数 要生成的报表的预期时间(以秒为单位)

轮询响应 (HTTP 200 正常)

报告完成后,轮询端点返回状态代码 200 (OK),同时提供报告详细信息,包括一个用于下载 CSV 文件的 blobLink

关键响应字段

Response 属性 说明
地位 报告生成的状态(InProgress、Completed、Failed)
dataFormat 生成的报表的格式(CSV)
blobCount 报告数据集中的 Blob 文件数量
byteCount 报表数据集的总大小(以字节为单位)
blobLink 下载成本详细信息 CSV 文件的 URL
validTill 下载 URL 的到期日期/时间

成本明细文件字段

下载的 CSV 文件包含包含关键字段的详细成本和使用情况数据,包括:

  • 日期 - 费用的使用情况或购买日期
  • BillingAccountId - EA 计费帐户的唯一标识符
  • InvoiceSectionId - EA 部门的唯一标识符(如果适用)
  • AccountId - EA 注册帐户的唯一标识符
  • SubscriptionId - Azure 订阅的唯一标识符
  • ResourceGroup - 资源组的名称
  • CostInBillingCurrency - 在信用额度或税款之前按计费货币收取费用的成本
  • ChargeType - 指示费用是代表使用情况、购买还是退款
  • PricingModel - 指示计量定价方式的标识符

有关所有字段及其说明的完整列表,请参阅 “了解成本详细信息”字段

最佳做法

  • 请求频率:针对给定的范围和日期范围每天最多生成一次报告。 每四小时刷新一次成本数据。
  • 日期范围:对于大型数据集,限制日期范围(例如生成每日或每周报表),以保持文件大小可管理。
  • 数据保留:立即下载和存储报表。 下载 URL 将在短时间内过期(通常为一小时)。

后续步骤