Azure Sentinel中调用已保存KQL函数时出现参数错误的问题求助
Azure Sentinel中调用已保存KQL函数时出现参数错误的问题求助
各位大佬好,我最近在Azure Sentinel里折腾KQL函数的时候碰到个头疼的问题,想请大家帮忙看看:
我写了个给指定表的a列追加字符串的函数,当我用let语句把函数内联在查询前面的时候,运行完全正常:
内联函数的写法搭配查询一起跑毫无问题:
let append_to_column_a=(T:(a:string), what:string) { T | extend a=strcat(a, " ", what); }; datatable (a:string) ["sad", "really", "sad"] | invoke append_to_column_a(":-)")
但是当我把这个函数保存成Azure Sentinel里的已保存函数之后,再用同样的查询语句调用:
datatable (a:string) ["sad", "really", "sad"] | invoke append_to_column_a(":-)")
就直接报错了:
append_to_column_a(): argument #1 must be a scalar expression
我反复核对了已保存函数的参数定义,和let里的是完全一致的——第一个参数是带a:string列的表类型,第二个是字符串类型。而且我试了好几个类似的例子,只要是用let定义的内联函数都能正常工作,可一旦存成已保存函数就触发这个参数错误。
我实在搞不懂哪里出问题了,明明逻辑是一样的啊...有没有大佬碰到过类似的情况,或者能帮我找找问题所在?
备注:内容来源于stack exchange,提问作者Jason
相关产品推荐
相关产品推荐

