从 EA 使用情况详细信息 API 迁移
对于以前使用 consumption.azure.com 终结点后面的企业报告 API 来获取使用情况详细信息和市场费用的 EA 客户,需要迁移到新的经改进的解决方案。 下文概述了执行此操作的说明以及旧 API 和新解决方案之间的协定差异。
数据集称为“成本详细信息”,而不是“使用情况详细信息”。
注意
所有 Azure 企业报告 API 均已停用。 你应该尽快迁移到 Microsoft 成本管理 API。
新解决方案正式发布
下表提供了可用迁移目标的摘要,以及选择哪种解决方案最适合时要考虑的事项摘要。
解决方案 | 说明 | 注意事项 | 引导信息 |
---|---|---|---|
导出 | 按计划将重复数据转储到存储 | - 工作负载最可缩放的解决方案。 - 可配置为对更大的数据集使用文件分区。 - 非常适合建立和增加可与自己的可查询数据存储集成的成本数据集。 - 需要访问可以保存数据的存储帐户。 |
- 在 Azure 门户中配置 使用 API 自动创建导出 - 导出 API 参考 |
成本详细信息 API | 按需下载 | - 适用于小型成本数据集。 - 对于因安全或可管理性问题导致导出到 Azure 存储不可行的场景非常有用。 |
- 按需获取小型成本数据集 - 成本详细信息 API |
一般情况下,如果有持续的数据引入需求和/或大型每月成本详细信息数据集,建议使用导出。 有关详细信息,请参阅引入成本详细信息数据。 如果需要其他信息来帮助你为工作负载做出决策,请参阅选择成本详细信息解决方案。
将权限分配给 SPN 以调用 API
如果要以编程方式调用导出或成本详细信息 API,需要使用正确的权限配置服务主体。 有关详细信息,请参阅向 ACM API 分配权限。
避免 Microsoft 消耗使用情况详细信息 API
消耗使用情况详细信息 API 是目前支持 EA 客户的另一个终结点。 请勿迁移到此 API。 迁移到导出或成本详细信息 API,如本文档前面所述。 消耗使用情况详细信息 API 位于下面的终结点后面,以后将被弃用。
GET https://management.chinacloudapi.cn/{scope}/providers/Microsoft.Consumption/usageDetails?api-version=2021-10-01
此 API 是一个同步终结点,由于支出和月份成本数据集的大小增加,将无法缩放。 如果当前使用的是消耗使用情况详细信息 API,建议尽快将其迁移到导出或成本详细信息 API。 正式弃用公告将在未来发布。 若要详细了解如何从消耗使用情况详细信息迁移,请参阅从消耗使用情况详细信息 API 迁移。
迁移优点
新解决方案与 EA 报告使用情况详细信息 API 相比提供了诸多优势。 摘要如下:
- 安全性和稳定性 - 新解决方案需要服务主体和/或用户令牌才能访问数据。 它们比用于向 EA 报告 API 进行身份验证的 API 密钥更安全。 这些旧 API 中的密钥有效期为 6 个月,如果泄露,可能会公开敏感的财务数据。 此外,如果密钥未在六个月的失效期之前续订并集成到工作负载中,则会撤销数据访问权限。 这会中断客户工作负载。
- 可伸缩性 - 随着 Azure 使用量的增加,EA 报告 API 并不能很好地扩展。 随着将更多资源部署到云中,使用情况详细信息数据集可能会变得非常大。 新解决方案是异步的,其背后具有广泛的基础结构增强功能,可以确保成功下载任何大小的数据集。
- 单个数据集用于所有使用情况详细信息 - Azure 和 Azure 市场使用情况详细信息已合并到新解决方案中的一个数据集内。 单个数据集减少了查看所有费用需要调用的 API 数。
- 购买摊销 - 购买预留的客户可以使用新解决方案查看成本的摊销视图。
- 架构一致性 - 每个可用的解决方案都提供具有匹配字段的文件。 它允许你根据场景在解决方案之间轻松切换。
- 成本分配集成 - 企业协议和 Microsoft 客户协议客户可以使用新解决方案来查看与已配置的成本分配规则相关的费用。 有关成本分配的详细信息,请参阅分配成本。
- 推进改进 - 正在积极开发新的解决方案。 发布后,解决方案将收到所有新功能。
要迁移的企业使用情况 API
下表汇总了可以用于引入成本详细信息数据的不同 API。 如果使用以下 API 之一,则需要迁移到上文介绍的新解决方案之一。 所有 API 都位于 https://consumption.azure.com 终结点后。
终结点 | API 注释 |
---|---|
/v3/enrollments/{enrollmentNumber}/usagedetails/download?billingPeriod={billingPeriod} |
- API 方法:GET - 同步(非轮询) - 数据格式:CSV |
/v3/enrollments/{enrollmentNumber}/usagedetails/download?startTime=2017-01-01&endTime=2017-01-10 |
- API 方法:GET - 同步(非轮询) - 数据格式:CSV |
/v3/enrollments/{enrollmentNumber}/usagedetails |
- API 方法:GET - 同步(非轮询) - 数据格式:JSON |
/v3/enrollments/{enrollmentNumber}/billingPeriods/{billingPeriod}/usagedetails |
- API 方法:GET - 同步(非轮询) - 数据格式:JSON |
/v3/enrollments/{enrollmentNumber}/usagedetailsbycustomdate?startTime=2017-01-01&endTime=2017-01-10 |
- API 方法:GET - 同步(非轮询) - 数据格式:JSON |
/v3/enrollments/{enrollmentNumber}/usagedetails/submit?billingPeriod={billingPeriod} |
- API 方法:POST - 异步(基于轮询) - 数据格式:CSV |
/v3/enrollments/{enrollmentNumber}/usagedetails/submit?startTime=2017-04-01&endTime=2017-04-10 |
- API 方法:POST - 异步(基于轮询) - 数据格式:CSV |
数据字段映射
下表汇总了当前使用的解决方案中可用的旧字段,以及要在新解决方案中使用的字段。
旧字段 | 新字段 | 注释 |
---|---|---|
accountId | 不可用 - 使用 AccountName 获取帐户信息。 | |
accountName | AccountName | |
accountOwnerEmail | AccountOwnerId | |
additionalInfo | AdditionalInfo | |
chargesBilledSeparately | isAzureCreditEligible | 属性是相反的。 如果 isAzureCreditEnabled 为 true,则 ChargesBilledSeparately 为 false。 |
consumedQuantity | 数量 | |
consumedService | ConsumedService | |
consumedServiceId | ConsumedService | consumedServiceId 提供数字值。ConsumedService 提供服务的名称。 |
cost | CostInBillingCurrency | |
costCenter | CostCenter | |
date | 日期 | 旧字段中的格式为 yyyy-mm-dd,而新字段的格式为 mm/dd/yy。 |
departmentId | InvoiceSectionId | 字段当前为空。 使用 DepartmentName 获取部门信息。 |
departmentName | InvoiceSectionName | |
extendedCost | CostInBillingCurrency | |
instanceId | ResourceId | |
isRecurringCharge | 如果适用,请使用 Frequency 和 Term fields 继续。 |
|
location | ResourceLocationNormalized | ResourceLocationNormalized 显示在成本详细信息报表中,但尚未出现在导出中。 |
meterCategory | MeterCategory | |
meterId | 计量 ID | |
meterName | MeterName | |
meterRegion | MeterRegion | |
meterSubCategory | MeterSubCategory | |
offerId | OfferId | |
orderNumber | 不可用。 | |
partNumber | PartNumber | |
planName | PlanName | |
product | ProductName | |
publisherName | PublisherName | |
resourceGroup | ResourceGroup | |
resourceGuid | 计量 ID | 值有所不同。 resourceGuid 是 GUID 值。 meterId 是长数字。 |
resourceLocation | ResourceLocation | |
resourceLocationId | 不可用。 | |
resourceRate | EffectivePrice | |
serviceInfo1 | ServiceInfo1 | |
serviceInfo2 | ServiceInfo2 | |
serviceName | MeterCategory | |
serviceTier | MeterSubCategory | |
storeServiceIdentifier | 不可用。 | |
subscriptionGuid | SubscriptionId | |
subscriptionId | SubscriptionId | |
subscriptionName | SubscriptionName | |
标记 | 标记 | 新字段的键值对周围没有封闭的 {} 。 |
unitOfMeasure | UnitOfMeasure |