【问题标题】:How do you get the OfferDurableId for an Azure subscription?如何获取 Azure 订阅的 OfferDurableId?
【发布时间】:2018-12-25 00:00:31
【问题描述】:

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

  • OfferDurableId
  • 货币
  • 语言环境
  • 区域信息

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

虽然 GitHub (https://github.com/Azure-Samples/billing-dotnet-ratecard-api) 上的 Microsoft 示例使用 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# azure azure-sdk-.net azure-billing-api


    【解决方案1】:

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

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

    • 货币:美元

    • 语言环境:en-US

    • RegionsInfo:美国

    更新

    不幸的是,API reference page 明确表示要查阅 优惠详情 页面以获取所需的 ID:

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

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

    希望对你有帮助!

    【讨论】:

    • 感谢您的回复,但我正在寻找一种以编程方式执行此操作的方法。首先,除非我们计划单独尝试每个报价细节,直到我们找到成功,否则我们将为每个订阅打很多失败的电话。我们正在尝试这样做,以便使用我们软件的管理员不必查找它。其次,虽然语言环境是设置返回的字符串值,但您是说不管我们可以强制设置的区域吗?即:如果订阅设置为加拿大和加元,如果我强制将其转换为美元货币和美国地区,它会转换它吗?如果这有效,我会感到惊讶。
    猜你喜欢
    • 2022-11-22
    • 1970-01-01
    • 2020-05-26
    • 1970-01-01
    • 2021-09-11
    • 2019-03-03
    • 2012-12-07
    • 2015-07-16
    • 2022-11-04
    相关资源
    最近更新 更多