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

如何用Kusto(KQL)查询实现标签名称的大小写不敏感过滤?

Azure资源标签名称大小写不敏感过滤的KQL解决方案

针对Azure资源标签名称大小写不统一的问题,推荐以下两种精准过滤的KQL方案,避免误匹配标签值:

方法1:展开标签键值对(推荐)

通过mv-expand将动态类型的tags拆分为独立的键值对行,统一转换标签名的大小写后匹配,同时精准过滤标签值:

Resources
| mv-expand tagEntry = tags
| extend TagKey = tostring(bag_keys(tagEntry)[0]), TagValue = tostring(tagEntry[bag_keys(tagEntry)[0]])
| where tolower(TagKey) == "projectteam" and TagValue == "TeamX"
| summarize by id, name, type, tags  // 按资源维度聚合,消除多标签导致的重复行

说明:

  • mv-expand tagEntry = tags:把每个资源的标签对象拆成多行,每行对应一个标签键值对
  • tolower(TagKey) == "projectteam":统一将标签名转小写后匹配,覆盖所有大小写变体
  • 如果需要标签值也支持大小写不敏感匹配,可改为tolower(TagValue) == tolower("TeamX")
  • summarize确保每个资源仅返回一条结果,避免因资源有多个标签而产生重复行

方法2:通过bag_keys检查标签名

利用bag_keys提取所有标签名称,结合any()函数判断是否存在匹配的标签名,再提取对应的值进行验证:

Resources
| where any(bag_keys(tags), tolower(_) == "projectteam")
| extend TargetTagValue = tostring(tags[array_find(bag_keys(tags), (k) => tolower(k) == "projectteam")])
| where TargetTagValue == "TeamX"

说明:

  • any(bag_keys(tags), tolower(_) == "projectteam"):检查资源是否存在任意大小写形式的"projectteam"标签
  • array_find定位匹配的标签名索引,再提取对应的值
  • 此方法无需展开行,适合仅需快速过滤标签名存在性的场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 21:15:41