Azure:通过REST获取单个资源的当前余额API

Azure: get current balance of single resource through REST API

我希望通过 Azure 的 REST API(例如:我们本月到目前为止已在此资源上花费了 X$)。我研究了 Billing API 和一般 REST API 文档(以及他们的 node.js SDK),但我找不到任何似乎可以做到这一点的东西。

有没有人做过类似的事情?任何帮助将不胜感激。

您想要查看的 API 是 Consumption API and the operation you would want to use is Usage Details - List

请注意:

  • 对于{scope}参数,请指定/subscriptions/{subscriptionId}/
  • 要获取特定资源的消耗量,您需要在 $filter 中指定该资源的路径。

例如,如果您想要某个特定存储帐户在 2019 年 4 月的消费,这就是您的筛选条件:

$filter=properties/instanceId eq '/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name}' and properties/usageStart ge '2019-04-01T00:00:00.0000000Z' and properties/usageEnd lt '2019-05-01T00:00:00.0000000Z'&$expand=meterDetails,additionalProperties

Azure Billing APIs 可用于将使用情况和资源数据提取到您首选的数据分析工具中。

Azure Resource Usage APIAzure Resource RateCard API 可以帮助准确预测和管理成本。 APIs 作为资源提供者实现,并且是 Azure 资源管理器公开的 APIs 家族的一部分。

推荐步骤

  1. 使用Azure Resource Usage API获取可用列表 Azure 资源和每个的估计定价信息。
  2. 使用 Azure Resource RateCard API 获取您的预估 Azure 消费数据。

Note: Support for Pay-as-you-go, MSDN, Monetary commitment, and Monetary credit offers (EA and CSP not supported)

  1. Azure Invoice Download API 允许您访问您的 Azure opt-in has been complete 后的 PDF 格式发票。它可以 用于将使用情况和资源数据提取到首选数据分析中 工具。

Note: This feature is in first version of preview and may be subject to backward-incompatible changes. Currently, it's not available for certain subscription offers (EA, CSP, AIO not supported) and Azure Germany.

  1. Reporting APIs for EA customers - 使用详情每天提供 消费数量和估计费用的细目分类 注册。结果还包括实例信息, 米和部门。 API可以通过Billing period查询或者 按指定的开始和结束日期

推荐文档

  1. Azure Billing REST API

  2. Azure Billing API overview

  3. Azure Resource Manager overview

  4. REST API Browser

如果您还有任何疑问,请随时分享。谢谢,编码愉快!

请注意此文档:Azure consumption API overview,这里显示您可以使用 用法详细信息 API 和过滤器来获得您想要的内容:

  • Filtering - Trim your API result set down to a smaller set of usage detail records using the following filters:
    • Usage end / usage start
    • Resource Group
    • Resource Name

这是 API 的格式:

GET https://management.azure.com/{scope}/providers/Microsoft.Consumption/usageDetails?$expand={$expand}&$filter={$filter}&$skiptoken={$skiptoken}&$top={$top}&$apply={$apply}&api-version=2019-01-01

对于{scope},除了可以使用'/subscriptions/{subscriptionId}/'作为订阅范围,还可以使用'/providers/Microsoft.Billing/billingAccounts/{billingAccountId}'计费帐户范围等。有关更多详细信息,请参考此 doc

使用$filter={$filter}可以实现你想要的(访问特定资源),这里提供我的API可以供你参考:

GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Consumption/usageDetails?$expand=meterDetails,additionalProperties&$filter=properties/usageEnd ge '2019-01-1' AND properties/usageEnd le '2019-05-22' AND properties/instanceName eq '{instanceName}'&$top=30&api-version=2019-01-01

eq means equals, ge means greater or equal, le means less or equal, and the instanceNmae means your specific resource name that the usage is about.