【问题标题】:Azure Rate Card api query using URIBuilder使用 URIBuilder 的 Azure Rate Card api 查询
【发布时间】:2017-11-08 01:40:52
【问题描述】:

我在 grrovy 脚本中使用 URIBuilder 正确构建 URL 时遇到了困难。这就是文档所说的样子 -

https://management.azure.com/subscriptions/{subscription-Id}/providers/Microsoft.Commerce/RateCard?api-version={api-version}&$filter=OfferDurableId eq '{OfferDurableId}' 和 Currency eq '{Currency}' 和区域设置eq '{Locale}' 和 RegionInfo eq '{RegionInfo}''

我的代码 -

def urlRATECARD = 'https://management.azure.com/subscriptions/xxxx-xxxx-xxxx-xxxx/providers/Microsoft.Commerce/RateCard'

def uriRATECARD = new URIBuilder(urlRATECARD)

uriRATECARD.addQueryParam 'api-version','2015-06-01-preview'
uriRATECARD.addQueryParam '$filter', 'OfferDurableId eq`0003P`and Locale eq `en-AU` and Regioninfo eq `AU` and Currency eq `AUD`'

输出 -

https://management.azure.com/subscriptions/xxxx-xxxx-xxxx-xxxx/providers/Microsoft.Commerce/RateCard?api-version=2015-06-01-preview&%24filter=OfferDurableId+eq%600003P%60and+Locale+eq+%60en-AU%60+and+Regioninfo+eq+%60AU%60+and+Currency+eq+%60AUD%60

失败并出现以下错误 -

[消息:指定的查询无效。请为 OfferDurableId、Currency、Locale 和 RegionInfo 指定有效值。]

谁能提供正确的创建方法?

【问题讨论】:

    标签: powershell azure groovy uri uribuilder


    【解决方案1】:

    我使用 $filter 标头的斜杠美元字符串解决了这个问题 -

    def urlRATECARD = 'https://management.azure.com/subscriptions/xxxx-xxxx-xxxx-xxxx/providers/Microsoft.Commerce/RateCard'
    def uriRATECARD = new URIBuilder(urlRATECARD)
    String Filter = $/OfferDurableId eq 'MS-AZR-0003p' and Locale eq 'en-AU' and Regioninfo eq 'AU' and Currency eq 'AUD'/$
    
    uriRATECARD.addQueryParam 'api-version','2015-06-01-preview'
    uriRATECARD.addQueryParam '$filter', Filter
    

    创建以下内容 -

    https://management.azure.com/subscriptions/xxxx-xxxx-xxxx-xxxx/providers/Microsoft.Commerce/RateCard?api-version=2015-06-01-preview&%24filter=OfferDurableId+eq+%27MS-AZR-0003p%27+and+Locale+eq+%27en-AU%27+and+Regioninfo+eq+%27AU%27+and+Currency+eq+%27AUD%27

    【讨论】:

      【解决方案2】:

      如果您的订阅是Pay-As-You-Go,则OfferDurableIdMS-AZR-0003p

      你可以检查这个example,在OFFER NUMBER之前,它需要添加MS-AZR-

      【讨论】:

      • 谢谢,这有帮助,但我通过将 $filter 放在一个字符串中解决了它,这使我能够使用 $/ 来克服格式问题。见下文
      • @Mondo 感谢您的分享。您的主要问题是您丢失了MS-AZR-。但是你的回答很有帮助。
      • 完成。现在我看到返回的费率卡很大,所以我现在需要解析这个。你在哪里见过这样的例子吗?
      • 您好,也许您可​​以针对您的要求提出一个新问题,也许我们可以帮助您。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-27
      • 1970-01-01
      • 2016-06-12
      • 2019-08-19
      • 2020-11-20
      • 1970-01-01
      相关资源
      最近更新 更多