首页 > 解决方案 > 如何获取 Azure 订阅的 OfferDurableId?

问题描述

在尝试调用 Azure 中的 RateCard API 时,需要一些典型的 Azure 管理员不会轻易掌握的参数。这些包括:

如果我们只有订阅 ID,我们如何以编程方式获取上述信息,以便获取订阅的价目表?

虽然 GitHub 上的 Microsoft 示例 ( https://github.com/Azure-Samples/billing-dotnet-ratecard-api ) 使用 app.config 演示了这一点,但现实情况是,要求管理员进行挖掘存在很多摩擦。必须有一种方法来获取这些信息,而不必一直询问管理员。

调用费率卡 API 的典型 URL 类似于:

string url = $"https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Commerce/RateCard?api-version=2015-06-01-preview&$filter=OfferDurableId=\'{offerId}\' and Currency eq {currency} and Locale eq=\'{locale}\' and RegionInfo eq \'{regionInfo}\'";

任何想法我可以调用哪些 API 来从订阅 ID 获取此信息?

标签: c#azureazure-sdk-.netazure-billing-api

解决方案


我认为除了参数(您可以在Microsoft Azure Offer DetailsOfferDurableId中查看可用值)之外,其余参数应具有固定值,具体取决于与您的组织相关的位置。

例如,如果您的组织位于美国,那么您可能会使用:

  • 货币:美元

  • 语言环境:en-US

  • 地区信息:美国

更新

不幸的是,API 参考页面明确指出要查阅优惠详情页面以获取所需的 ID:

将 {OfferDurableId} 设置为有效的商品 ID 代码(例如 MS-AZR-0026P)。有关可用优惠 ID、国家/地区可用性和计费货币列表的更多信息,请参阅Microsoft Azure 优惠详情。报价 ID 参数由“MS-AZR-”前缀和报价 ID 号组成。

关于它是否允许您使用订阅未使用的 Currency/Locale/RegionInfo 值进行查询,我认为它应该是可能的(至少在某种程度上),因为您只是查询一般元数据。

希望能帮助到你!


推荐阅读