我正在使用 Python 对我的 Azure Log Analytics 工作区调用查询。为了提供最大的可扩展性,我想实现一个查询,该查询返回我的 Log Analytics 工作区中的所有表名。本质上,我想生成所有表名的列表,以便稍后在我的 python 脚本中调用它们。
我尝试了一些不同的查询。例如:
Search * | distinct $table
而不是获取表列表,例如:
[
{
"$table": "ExampleTable"
}
]
我收到一条错误消息:
{'error':
{
'message': 'The request had some invalid properties', 'code': 'BadArgumentError', 'innererror':
{
'code': 'SyntaxError', 'message': 'Syntax Error'
}
}
}
任何建议/示例将不胜感激。谢谢!
更新:
再次访问 Azure Log Analytics REST API 网站后,我决定花一些时间来玩弄内置的 API 资源管理器工具。在那里,我能够成功地查询示例工作区以获取表列表。我能够使用几个不同的查询来做到这一点:
search * | distinct $table
search * | distinct Type
虽然这两个查询都在示例环境中完美运行,但它们在我自己的环境中仍然继续让我失望。每当我发送在 API 资源管理器中返回完美结果的相同查询时,我的 python 应用程序和 Azure LogicApp 都会继续收到语法错误。我继续对这个问题感到困惑。以下是 API Explorer 的站点,供想要测试的人使用:https ://dev.loganalytics.io/apiexplorer/query?appId=DEMO_WORKSPACE&apiKey=DEMO_KEY
另外,要回答一个明显的问题:是的,我已经正确设置了 API 连接的其余部分。在 Python 应用程序和 LogicApp 工作流中,我可以并且确实成功地进行了其他查询。似乎正是这个特殊的问题给我带来了问题。
最后,如果有帮助,这是我在进行查询时继续收到的错误消息:
{'error': {'message': 'The request had some invalid properties', 'code': 'BadArgumentError', 'innererror': {'code': 'SyntaxError', 'message': 'Syntax Error'}}}