Azure中如何提取KQL查询输出字符串的最后部分
实现方法
你可以通过解析JSON、拆分字符串的方式提取目标内容,以下是两种适配不同场景的KQL写法:
场景1:VPN站点可能有多个(展开所有站点)
resources | where type == 'microsoft.network/virtualwans' and tags.CompanyTag =~ 'Company' | extend WANname = name | extend vpnSitesArray = parse_json(properties.vpnSites) // 将字符串格式的JSON数组转为动态类型 | mv-expand vpnSitesArray // 展开数组,每个VPN站点单独成一行 | extend vpnSiteId = tostring(vpnSitesArray.id) // 提取站点的ID字符串 | extend VPNsiteName = split(vpnSiteId, '/')[-1] // 按斜杠拆分ID,取最后一段 | project WANname, VPNsiteName // 保留需要的字段输出
场景2:确认只有单个VPN站点(直接提取)
如果确定properties.vpnSites数组里只有一个元素,可以简化为:
resources | where type == 'microsoft.network/virtualwans' and tags.CompanyTag =~ 'Company' | extend WANname = name | extend vpnSiteId = tostring(parse_json(properties.vpnSites)[0].id) // 直接取数组第一个元素的ID | extend VPNsiteName = split(vpnSiteId, '/')[-1] // 拆分取最后一段 | project WANname, VPNsiteName
核心逻辑完全匹配你的思路:用split()函数按斜杠拆分ID字符串得到数组,再通过[-1]直接获取数组的最后一项。
内容的提问来源于stack exchange,提问作者Xyltic
相关产品推荐
相关产品推荐

