我正在查看其余API的文档,并希望获得资源的成本。
查看适用于 .NET 的 REST API 和 SDK,有一个消耗终结点可以执行此操作,但在进一步测试中,这似乎仅提供最新的可用计费周期(24 小时窗口(。
示例代码:
var filterString = $"properties/instanceName eq '{vm.VirtualMachineName}'";
var vmConsumptionData = await consumptionClient.Item1.UsageDetails.ListAsync(
scope: $"/subscriptions/{consumptionClient.subscriptionGuid}",
filter: filterString
);
consumptionClient
是作为元组的一部分返回的消耗客户端的实例。
结果是昨天上次开票的金额。
是否有任何其他终结点可以提供 Azure 中资源的最新成本概述? 即每分钟或每小时
我认为可以做到这一点的唯一另一种方法是检索资源的"使用数量",并根据每小时的资源成本计算出来。
Mar-06-2020
关于Microsoft.CostManagement/Query
的文档
POST https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.CostManagement/query?api-version=2019-11-01&$top=10000
Content-Type: application/json
{
"type": "ActualCost",
"dataSet": {
"granularity": "None",
"aggregation": {
"totalCost": {
"name": "PreTaxCost",
"function": "Sum"
},
"totalCostUSD": {
"name": "PreTaxCostUSD",
"function": "Sum"
}
},
"filter": {
"Dimensions": {
"Name": "ResourceId",
"Operator": "In",
"Values": [
"{resourceId}"
]
}
}
},
"timeframe": "Custom",
"timePeriod": {
"from": "2020-02-29T00:00:00+00:00",
"to": "2020-03-06T23:59:59+00:00"
}
}
有响应:
{
"id": "subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.CostManagement/query/XXXXXXXX-9ab4-XXXX-83fe-XXXXXXXXXXXX",
"name": "XXXXXXXX-9ab4-XXXX-83fe-XXXXXXXXXXXX",
"type": "Microsoft.CostManagement/query",
"location": null,
"sku": null,
"eTag": null,
"properties": {
"nextLink": null,
"columns": [
{
"name": "PreTaxCost",
"type": "Number"
},
{
"name": "Currency",
"type": "String"
}
],
"rows": [
[
1234.5678910,
"CAD"
]
]
}
}
我发现这为我的特定资源返回了准确的值。
注意:唯一需要注意的是,此 API 端点在文档中标记为-legacy
。不确定它是否会得到长期支持,但目前有效。