如何修改Azure Monitor通用架构以传递Kusto查询数据至Logic Apps
修改Azure Monitor告警架构传递Kusto查询结果的方向
1. 明确Kusto查询输出字段
先确保你的Kusto查询返回需要传递的所有字段,比如位置、用户名、IP、登录时间等,示例查询:
SigninLogs | where ConditionalAccessStatus == "success" // 你的告警触发条件 | project TimeGenerated, UserPrincipalName, Location, IPAddress, AppDisplayName | take 5 // 根据告警场景调整返回条数
2. 配置告警自定义Payload
在Azure Monitor告警规则的操作组设置中,开启自定义Payload,用JSON格式将Kusto查询结果嵌入到告警通知中,替代默认通用架构:
{ "alert_title": "#{alertName}", "trigger_time": "#{alertStartTime}", "login_details": "#{queryResults}" }
其中#{queryResults}会自动填充Kusto查询返回的完整结果(JSON数组格式),如果是单条结果,也可以单独提取字段,比如#{queryResults:Location}。
3. 在Logic Apps中解析Payload
- 当Logic Apps被操作组触发时,HTTP请求的Body会携带自定义Payload,在触发器的“当HTTP请求触发时”中,粘贴自定义Payload的示例生成JSON解析架构。
- 添加“解析JSON”动作,将请求Body转换为可操作的字段,再通过循环遍历
login_details数组,提取每个条目的位置、用户名等信息,插入到邮件内容模板中。
4. 验证调整
手动触发符合条件的登录操作,查看Logic Apps运行历史,确认Payload中的Kusto字段是否正确传递,检查邮件内容是否包含预期的位置等信息,按需调整字段映射或查询逻辑。
注意事项
- 如果Kusto返回多条结果,需在Logic Apps中添加循环动作遍历所有条目,避免只展示第一条数据。
- 确保操作组调用Logic Apps的Webhook配置中,已选择使用自定义Payload而非默认架构。
内容的提问来源于stack exchange,提问作者Ken Camarador
相关产品推荐
相关产品推荐

