Logic App结合Azure Monitor实现VM补丁缺失通知时条件判断异常
问题根因
- 你错误选择了
empty()函数的判断对象:Logic App中Azure Monitor日志查询动作返回的[my_table]是完整的查询结果结构体,哪怕没有匹配到任何业务数据,该结构体本身也不为空,还包含查询状态、执行耗时、表头定义等元数据,因此empty([my_table])永远返回false,和是否存在符合条件的补丁数据无关。 - 你收到的通知内容
The query yielded no data是Azure Monitor查询无匹配业务数据时的官方提示,也验证了查询本身执行成功,仅无符合条件的业务结果,完全符合上述结构特征。
修复方案
你需要改为判断结构体中的业务数据集合是否为空,根据实际场景二选一即可:
- 单表查询场景(你的补丁查询属于这类):使用函数
empty(body('<替换为你的Azure Monitor动作的实际名称>')?['tables'][0]?['rows'])判断返回的第一组表的行集合是否为空 - 通用简化场景:使用函数
empty(body('<替换为你的Azure Monitor动作的实际名称>')?['value'])判断返回的结果值集合是否为空
内容的提问来源于stack exchange,提问作者Makina74
相关产品推荐
相关产品推荐

