gpt4 book ai didi

javascript - azure ARM 消耗: get consumption of a resource group

转载 作者:搜寻专家 更新时间:2023-10-31 22:49:02 24 4
gpt4 key购买 nike

在我的 Node.js 项目中,我尝试使用 azure-arm-consumption package获取资源组的当前消耗/计费。我的意思是,到目前为止,在这个资源组上花了多少钱。

在“接口(interface)”下,从AggregateCost到UsageDetails,所有这些接口(interface)都包含方法,但我就是找不到读取特定资源组消耗了多少钱的方法。

我的代码:

const MsRest = require('ms-rest-azure');
const credentials = MsRest.loginWithServicePrincipalSecret(keys.appId, keys.pass, keys.tenantId);
const { ConsumptionManagementClient } = require('azure-arm-consumption');
const client = new ConsumptionManagementClient (credentials, subscriptionId);
const cost = client.forecasts.list(subscriptionId);

它会检索我的订阅消耗量除以日期。现在的问题是我不希望它按日期划分,而是按资源组划分。 this API有什么方法吗?可以做到这一点吗?

最佳答案

根据文档,没有可用的方法/端点来按资源组获取数据。您必须下载所有数据并自行处理。

下面的脚本将使用 REST 下载数据(使用 ConductionManagementClient 几乎相同)并按资源组汇总使用情况。以此为起点。

const axios = require('axios');

function processUsage(data) {
let usage = [];

for (index in data.value) {
const properties = data.value[index].properties;
const cost = properties.pretaxCost;

let resourceGroup = properties.instanceId.replace(`/subscriptions/${properties.subscriptionGuid}/resourceGroups/`, "");
resourceGroup = resourceGroup.substring(0, resourceGroup.indexOf("/"));

let foundUsage = usage.filter(x => x.rg === resourceGroup);
if (foundUsage.length > 0) {
foundUsage[0].cost += cost
} else {
usage.push({
rg: resourceGroup,
cost: cost
});
}
}

usage.map(x => console.log(`${x.rg} | ${x.cost}`));

// Example result display list of resource groups and costs in EUR (in my case)
// myresourcegroup | 1.2234748382055878
// DevTestLab | 0.0004314997440000002
}

function getUsage(subscriptionId, accessToken) {
const url = `https://management.azure.com/subscriptions/${subscriptionId}/providers/Microsoft.Consumption/usageDetails?api-version=2018-10-01`

const options = {
headers: {
Authorization: `Bearer ${accessToken}`
}
}
axios.get(url, options).then(response => {
processUsage(response.data);
}).catch(error => {
console.log(error);
});
}

getUsage(
"subscription id",
"access token"
);

Reference:
https://learn.microsoft.com/en-us/rest/api/consumption/usagedetails https://learn.microsoft.com/en-us/javascript/api/azure-arm-consumption/usagedetails#list-object-
https://learn.microsoft.com/en-us/javascript/api/azure-arm-consumption/usagedetail
https://azure.microsoft.com/cs-cz/blog/azure-consumption-usage-details-api/

关于javascript - azure ARM 消耗: get consumption of a resource group,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54158315/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com