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

如何用Kusto查询获取逻辑应用失败工作流的错误详情

调整Kusto查询获取Logic Apps失败工作流的详细错误信息

你当前的查询只能拿到顶层的"BadRequest",是因为AzureDiagnostics的WorkflowRuntime类别里,code_s和error_message_s只存了最外层的错误摘要,详细的statusCode、错误消息和innerError都藏在动态JSON字段里,比如error_d或者details_d。试试下面的调整方案:

方案一:从AzureDiagnostics提取详细错误

直接解析表中的动态错误字段,把嵌套的详细信息取出来:

AzureDiagnostics
| where ResourceProvider == "MICROSOFT.LOGIC"
| where Category == "WorkflowRuntime"
| where status_s == "Failed"
| extend ResourceName = coalesce(resource_actionName_s, resource_triggerName_s)
// 解析动态错误字段
| extend ErrorDetails = parse_json(error_d)
// 提取嵌套的错误信息,兼容字段不存在的情况
| extend 
    StatusCode = coalesce(tostring(ErrorDetails.statusCode), tostring(parse_json(details_d)[0].statusCode)),
    DetailedErrorMessage = coalesce(tostring(ErrorDetails.message), tostring(parse_json(details_d)[0].message)),
    InnerError = coalesce(tostring(ErrorDetails.innerError), tostring(parse_json(details_d)[0].innerError))
| project
    LogicAppName = resource_workflowName_s,
    ResourceName,
    LogicAppRunId = resource_runId_s,
    TopLevelErrorCode = code_s,
    StatusCode,
    DetailedErrorMessage,
    InnerError

如果你的环境里动态字段名称不一样,先跑AzureDiagnostics | getschema查看所有字段,找到存储详细错误的JSON字段(比如可能叫errorDetails_d),替换上面的error_d或details_d即可。

方案二:用专门的诊断表(更精准)

如果你的Logic Apps已经开启了WorkflowRunAction类别的诊断日志,直接用LogicAppWorkflowRunActionDiagnostics表查询会更简单,这个表专门存储动作和触发器的详细错误:

LogicAppWorkflowRunActionDiagnostics
| where Status == "Failed"
| extend 
    ResourceName = coalesce(ActionName, TriggerName),
    ErrorDetails = parse_json(Error)
| extend 
    StatusCode = tostring(ErrorDetails.statusCode),
    DetailedErrorMessage = tostring(ErrorDetails.message),
    InnerError = tostring(ErrorDetails.innerError)
| project
    LogicAppName = WorkflowName,
    ResourceName,
    LogicAppRunId = RunId,
    StatusCode,
    DetailedErrorMessage,
    InnerError

注意事项

  • 得确认你的Logic Apps诊断设置里,已经勾选了WorkflowRuntime(方案一)和WorkflowRunAction(方案二)这两个日志类别,不然表中不会有对应数据
  • 如果innerError是多层嵌套的JSON,可以继续用parse_json逐层提取,比如tostring(ErrorDetails.innerError.message)来拿到更内层的错误内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 22:36:33