我希望通过Azure的REST API获得当前期间在MS Azure上给定资源(而不是整个订阅或资源组)所花费的实时当前金额(例如:到目前为止,我们已花费X $这个月在这个资源上)。我已经研究了Billing API和一般的REST API文档(以及它们的node.js SDK),但是找不到任何能做到这一点的东西。
有人做过类似的事情吗?任何帮助将不胜感激。
答案 0 :(得分:3)
请注意此文档:Azure consumption API overview,这里显示您可以将使用细节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
对于{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
等于,ge
等于或大于,le
等于或小于 等于,并且instanceNmae表示您要使用的特定资源名称。
答案 1 :(得分:1)
Azure Billing APIs可用于将使用情况和资源数据提取到您首选的数据分析工具中。
Azure Resource Usage API
和Azure Resource RateCard API
可以帮助准确预测和管理成本。这些API被实现为资源提供者,并且是Azure资源管理器公开的API系列的一部分。
推荐步骤
注意:支持即用即付,MSDN,货币承诺和货币信贷优惠(不支持EA和CSP)
注意:此功能在预览的第一版中,可能会向后不兼容。目前还不是 适用于某些订阅优惠(不支持EA,CSP,AIO) 和Azure德国。
推荐文档
如果您还有任何疑问,请随时分享。谢谢,祝您编程愉快!
答案 2 :(得分:0)
您要查看的API是Consumption API
,而您要使用的操作是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