教程:使用导出 API 设定历史成本数据集的种子
大型组织通常需要分析一年或一年以上的历史成本。 可能需要创建数据集进行有针对性的一次性查询或设置报表仪表板,以可视化随时间推移的成本趋势。 无论哪种情况,都需要一种能可靠地获取数据的方法,以便可以将其加载到可以查询的数据存储中。 设定历史成本数据集后,随着新成本传入,可以更新数据存储,以便报告保持最新。 历史成本很少变化,如果是这样,你将收到通知。 因此,建议最多每月刷新一下历史成本。
在本教程中,你将了解如何执行以下操作:
- 获取服务主体的持有者令牌
- 设置请求的格式
- 在一个月区块中执行请求
先决条件
需要适当的权限才能成功调用导出 API。 建议在自动化方案中使用服务主体。
- 若要了解详细信息,请参阅为成本管理 API 分配权限。
- 若要详细了解导出 API 所需的特定权限,请参阅了解并使用范围。
此外,你还需要一种可直接查询 API 的方法。 查询 API 的一些常用方式包括:
- Visual Studio
- Insomnia
- Bruno
- PowerShell 的 Invoke-RestMethod
- Curl
获取服务主体的持有者令牌
若要了解如何使用服务主体获取持有者令牌,请参阅获取访问令牌。
设置请求的格式
请参阅以下示例请求并创建自己的一次性数据导出。 以下示例请求在指定的 Azure 存储帐户中创建一个月的实际成本数据集。 建议每个报表请求不超过一个月的数据。 如果每个月都有一个大型数据集,建议为一次性导出设置 partitionData = true
,以便将数据集拆分为多个文件。 有关详细信息,请参阅大型数据集的文件分区。
PUT https://management.chinacloudapi.cn/providers/Microsoft.Billing/billingAccounts/{enrollmentId}/providers/Microsoft.CostManagement/exports/{ExportName}?api-version=2021-10-01
请求标头
Authorization: <YOUR BEARER TOKEN>
Accept: /*/
Content-Type: application/json
请求正文
{
"properties": {
"definition": {
"dataset": {
"granularity": "Daily",
"grouping": []
},
"timePeriod": {
"from": "2021-09-01T00:00:00.000Z",
"to": "2021-09-30T00:00:00.000Z"
},
"timeframe": "Custom",
"type": "ActualCost"
},
"deliveryInfo": {
"destination": {
"container": "{containerName}",
"rootFolderPath": "{folderName}",
"resourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}"
}
},
"format": "Csv",
"partitionData": false
}
}
在一个月区块中创建导出
建议在一个月的区块中创建一次性数据导出。 如果要设定一年的历史数据集,则应执行 12 个导出 API 请求 - 每个月一个。 设定历史数据集种子后,可以创建计划的导出,以便随着时间和费用的累积继续填充 Azure 存储中的成本数据。
运行每个导出
创建每个月的导出后,需要通过调用执行 API 手动运行每个导出。 下面是对 API 的示例请求。
POST https://management.chinacloudapi.cn/{scope}/providers/Microsoft.CostManagement/exports/{exportName}/run?api-version=2021-10-01
后续步骤
在本教程中,你将了解:
- 获取服务主体的持有者令牌
- 设置请求的格式
- 在一个月区块中执行请求
若要详细了解成本详细信息,请参阅引入成本详细信息数据。
若要详细了解成本详细信息数据集中可用的数据,请参阅了解成本详细信息数据字段。