如何从Azure Logic Apps特定运行中查询任务输出与负载数据?
如何在Azure中查询Logic Apps各任务的数据、负载及输出?
方法1:调整诊断设置,收集Verbose级别的工作流运行日志
默认情况下,Logic Apps向Log Analytics推送的日志仅包含基础运行信息,不会记录任务的输入输出。你可以通过修改诊断设置,开启Verbose级别日志来获取这些数据:
- 进入目标Logic Apps资源的诊断设置页面
- 添加或编辑现有诊断设置,选择关联的Log Analytics工作区
- 在日志类别中勾选
WorkflowRuntime,并将日志级别设置为Verbose(或Information,Verbose会包含最完整的任务数据) - 保存设置后,等待10-15分钟让日志开始同步
之后就可以用以下Kusto查询在Log Analytics中提取任务输出:
AzureDiagnostics | where ResourceProvider == "MICROSOFT.LOGIC" | where Category == "WorkflowRuntime" | where OperationName == "Microsoft.Logic/workflows/workflowRunActionCompleted" // 筛选特定工作流(可选) | where Resource == "你的工作流名称" | extend ActionDetails = parse_json(Properties) | project TimeGenerated, 工作流名称 = Resource, 任务名称 = ActionDetails.actionName, 任务输入 = ActionDetails.inputs, 任务输出 = ActionDetails.outputs
方法2:通过Logic Apps管理API/CLI获取任务详情
如果不需要将数据持久化到Log Analytics,可以直接调用管理API或使用Azure CLI查询单条运行记录的任务数据:
- Azure CLI示例:
az logic workflow run action show \ --resource-group "你的资源组名称" \ --workflow-name "你的工作流名称" \ --run-name "目标运行记录ID" \ --name "目标任务名称"
返回的JSON响应中,inputs和outputs字段就是该任务的负载与输出数据。
- PowerShell示例:
Get-AzLogicAppRunAction ` -ResourceGroupName "你的资源组名称" ` -Name "你的工作流名称" ` -RunName "目标运行记录ID" ` -ActionName "目标任务名称"
方法3:将任务输出写入外部存储(适用于长期留存)
如果需要长期保存任务输出,或希望更灵活地查询,可以在Logic Apps的每个任务后添加一个写入动作(比如“写入Blob存储”或“写入Azure Table存储”),将任务的@outputs('任务名称')内容保存到存储服务中。之后可以通过存储账户的诊断设置将数据同步到Log Analytics,或直接查询存储服务中的数据。
内容的提问来源于stack exchange,提问作者wilson_smyth
相关产品推荐
相关产品推荐

