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

Ced*_*rge 1 azure azure-billing-api azure-devops-rest-api

我希望通过 Azure 的 REST API 获取当前期间给定资源(不是整个订阅或资源组)在 MS Azure 上花费的实时当前金额(例如:本月到目前为止,我们已经花费了 X$此资源)。我已经研究了 Billing API 和一般 REST API 文档(以及他们的 node.js SDK),但我找不到任何似乎可以做到这一点的东西。

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

Mer*_*SFT 5

请注意此文档:Azure 消费 API 概述,此处显示您可以使用带过滤器的Usage Details API来获取您想要的内容:

  • 过滤- 使用以下过滤器将您的 API 结果集修剪为较小的使用详细记录集:
    • 使用结束/使用开始
    • 资源组
    • 资源名称

这是此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
Run Code Online (Sandbox Code Playgroud)

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

使用$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
Run Code Online (Sandbox Code Playgroud)

eq表示等于, ge表示大于或等于,le表示小于或等于,并且 instanceNmae 表示您的特定资源名称,该用法是关于的。