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

Logic App中Kusto查询传递变量无结果,如何解决?

排查Kusto查询无结果的问题

你的原始Kusto查询:

StorageBlobLogs | where Protocol contains "sftp" and Uri contains "@{variables('Filename')}" and  OperationName contains "sftpcommit"  and TimeGenerated > ago(5m) | project RequesterObjectId 

按以下步骤逐一排查:

  • 确认变量替换结果
    在Logic App中添加输出步骤,查看@{variables('Filename')}的实际值,确认是否和Blob的完整标识(含容器路径,如果有)一致。比如Blob存放在container/subfolder/file.txt,Uri字段会包含完整路径,若变量只存了file.txt,contains能匹配,但如果变量带了额外前缀/后缀,就会匹配失败。

  • 修正大小写匹配问题
    Kusto查询默认区分大小写,若Uri或OperationName的实际值大小写和查询不一致(比如实际是SftpCommit),可以改用不区分大小写的contains_i替换contains:

    StorageBlobLogs | where Protocol contains_i "sftp" and Uri contains_i "@{variables('Filename')}" and  OperationName contains_i "sftpcommit"  and TimeGenerated > ago(15m) | project RequesterObjectId 
    
  • 验证OperationName的准确值
    先执行以下查询确认SFTP操作对应的OperationName:

    StorageBlobLogs | where Protocol contains "sftp" | distinct OperationName
    

    用查询返回的实际值替换"sftpcommit",避免拼写或大小写错误。

  • 扩大时间范围
    日志生成可能存在延迟,把ago(5m)调整为ago(15m)甚至ago(30m),确认是否在时间范围内有匹配的日志。

  • 检查日志收集配置
    先去掉Uri过滤条件,执行简化版查询:

    StorageBlobLogs | where Protocol contains "sftp" and OperationName contains "sftpcommit" and TimeGenerated > ago(30m)
    

    如果无结果,说明存储账户的诊断日志未正确开启SFTP操作的日志收集,需要确认已在存储账户的诊断设置中开启StorageBlobLogs,并包含写入类操作。

  • 确认RequesterObjectId字段是否存在
    暂时把project RequesterObjectId改为project *,查看所有字段,确认该操作是否真的记录了RequesterObjectId(部分认证方式可能不会生成该字段)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 11:37:57