Azure资源组列表支持的筛选操作及名称模糊匹配问题咨询
Azure资源组REST API筛选器问题解答
问题描述
调用Azure资源组列表的REST API尝试筛选名称部分匹配的资源组,使用的API地址为:
https://management.azure.com/subscriptions/<sub ID>/resourcegroups?api-version=2020-10-01&%24filter=substringof(Name%2C%20'<something>')
但持续收到错误:
{ "error": { "code": "InvalidFilterInQueryString", "message": "Invalid $filter 'substringof(Name, '<something>')' specified in the query string." } }
在官方文档页面测试后,未找到该REST调用支持的筛选器列表,尝试的OData字符串筛选器均无效,询问哪里可以找到支持的筛选器列表。
解决方案
1. 该API支持的有效筛选器规则
Azure资源组列表API仅支持特定的OData筛选语法,不兼容旧版的substringof,可用的筛选规则包括:
- 名称前缀匹配:
startswith(Name, '<关键词>') - 名称完全匹配:
eq Name '<完整名称>' - 名称包含匹配:
contains(Name, '<关键词>')(这是符合OData v4标准的语法,替代你使用的substringof) - 标签筛选:例如
tagName eq '<标签值>'(将tagName替换为实际的标签键)
2. 正确的API调用示例
要实现名称部分匹配,使用contains的正确API地址为:
https://management.azure.com/subscriptions/<sub ID>/resourcegroups?api-version=2020-10-01&$filter=contains(Name, '<something>')
3. 查找官方筛选器说明的位置
支持的筛选器说明隐藏在该API文档的Parameters章节下的$filter参数描述中,查看该参数的详细说明,就能明确找到允许使用的操作符和可筛选的字段。
内容的提问来源于stack exchange,提问作者simpleCoder
相关产品推荐
相关产品推荐

