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

Azure CLI调用零售定价API时skuName过滤不生效问题

错误原因

过滤不生效的核心原因是不符合Azure零售定价API的参数传递规则:

  • 该接口遵循OData查询规范,所有针对资源属性的筛选条件,必须通过专用的$filter参数按OData语法传入。你直接把skuName作为顶层查询参数传递的写法,接口会直接忽略这个不识别的参数,默认返回全量定价数据,根本不会执行过滤逻辑。
  • 返回结果里的NextPageLink带上了skuName=F4s v2,只是az rest工具自动把你传入的所有自定义URL参数拼接到了分页链接中,不代表服务端实际识别、执行了这个过滤条件。
  • 你直接在浏览器访问带$filter参数的地址能正常返回过滤结果,就是因为参数传递方式符合接口的OData规范要求。
修正方案

按照OData规范通过$filter传入筛选条件即可,提供两种通用写法:

写法1:通过--url-parameters传参

根据你使用的终端环境选择对应转义规则的命令:

  • Bash环境(Linux/macOS/Git Bash/WSL Bash)
az rest -u "https://prices.azure.com/api/retail/prices" \
  --url-parameters '{"$filter":"skuName eq '\''F4s v2'\''", "currencyCode":"GBP"}'
  • PowerShell环境
az rest -u "https://prices.azure.com/api/retail/prices" `
  --url-parameters "{``"$filter``":``"skuName eq 'F4s v2'``", ``"currencyCode``":``"GBP``"}"

写法2:直接传入完整带参URL

这种写法不需要处理复杂的JSON转义,注意在Shell环境中转义$特殊字符即可,跨环境兼容性更好:

# Bash环境
az rest -u "https://prices.azure.com/api/retail/prices?currencyCode=GBP&\$filter=skuName eq 'F4s v2'"
# PowerShell环境
az rest -u "https://prices.azure.com/api/retail/prices?currencyCode=GBP&`$filter=skuName eq 'F4s v2'"

执行上述正确命令后,接口会仅返回skuName匹配F4s v2的定价结果,不会再混入其他规格的定价数据。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 01:15:35