如何获取Azure订阅的OfferDurableId?

时间:2018-12-25 00:00:31

标签: c# azure azure-sdk-.net azure-billing-api

为了尝试在Azure中调用RateCard API,需要几个典型的Azure管理员不容易掌握的参数。这些包括:

  • OfferDurableId
  • 货币
  • 语言环境
  • RegionInfo

如果我们仅有的是subscriptionID,我们如何以编程方式获取上述信息,以便获得预订的价目表?

尽管Microsoft在GitHub(https://github.com/Azure-Samples/billing-dotnet-ratecard-api)上的示例使用app.config进行了演示,但现实是,要求管理员对此进行深入研究存在很大的摩擦。必须有一种方法来获取此信息,而不必一直询问管理员。

调用价目表API的典型网址如下:

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中获取此信息?

1 个答案:

答案 0 :(得分:0)

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

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

  • 货币:美元

  • 语言环境:美国

  • RegionsInfo:美国

更新

不幸的是,API reference page明确声明要查询要约详细信息页面以获取所需的ID:

  

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

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

希望有帮助!