You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure RateCard API调用参数配置错误求助

解决Azure RateCard API参数无效的问题

看起来你遇到的核心问题有两个方向:参数格式错误和参数值不匹配,咱们一步步排查:

1. 紧急修复:替换中文引号为英文引号

你当前的$filter参数里用的是中文单引号’,而Azure API要求必须使用英文单引号',这是最容易触发"Invalid query"错误的原因。比如你的原参数:

$filter=OfferDurableId eq ’MS-AZR-0003P’ and Currency eq ’EUR’ and Locale eq ’en-US’ and RegionInfo eq ’NL’

要改成:

$filter=OfferDurableId eq 'MS-AZR-0003P' and Currency eq 'EUR' and Locale eq 'en-US' and RegionInfo eq 'NL'

2. 验证每个参数的合法性

如果替换引号后还是报错,就需要逐个确认参数值是否符合要求:

OfferDurableId

MS-AZR-0003P是Pay-As-You-Go(即用即付)的经典Offer ID,但要注意:

  • 不同区域的Offer ID可能有差异,比如某些地区的即用即付Offer ID是MS-AZR-0003P,但也有部分地区用MS-AZR-0023P或其他变体。
  • 你可以在Azure门户的订阅详情里找到正确的Offer ID:进入订阅 -> 概述 -> 订阅ID下方的"Offer ID"字段。

Currency & RegionInfo

  • EUR作为欧元是合法的,但要确保RegionInfo(NL)支持该货币。荷兰区域支持EUR,这部分没问题,但要注意RegionInfo必须是ISO 3166-1 alpha-2格式的国家/地区代码(比如NL、US、DE等)。
  • 如果你不确定,可以尝试用RegionInfo eq 'EU'(欧洲区域)来测试,但最好和你的订阅注册地区保持一致。

Locale

en-US是合法的Locale值,但要确保它和Currency、RegionInfo兼容。比如如果用NL-NL作为Locale,搭配EUR和NL也是可行的,你可以根据需求调整,但必须是有效的RFC 4646格式的区域设置字符串。

3. 测试用例示例

如果你的订阅是荷兰区域的即用即付,正确的$filter参数应该类似这样:

$filter=OfferDurableId eq 'MS-AZR-0003P' and Currency eq 'EUR' and Locale eq 'en-US' and RegionInfo eq 'NL'

(注意所有引号都是英文的)

额外提示

  • 调用API时,确保请求头里的Authorization Bearer token是有效的,并且有访问该订阅的权限。
  • 可以先用Azure CLI命令az consumption price list来验证参数是否有效,该命令本质上是调用RateCard API,比如:
az consumption price list --subscription <your-subscription-id> --offer-id 'MS-AZR-0003P' --currency 'EUR' --locale 'en-US' --region-info 'NL'

如果这个命令能返回结果,说明参数是正确的,再把参数迁移到你的API调用里。

内容的提问来源于stack exchange,提问作者weeknie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:01:46