如何解决如何使用python运行Azure Log Analytics查询API?
我一直在尝试使用在以下查询中运行的python运行日志分析查询
os.system("curl -X POST \'https://api.loganalytics.io/v1/workspaces/0000000000000000000000-0000-c05f0ccc198d/query\' -d \'{\"query\": \"ContainerLog\",\"timespan\": \"PT12H\"}\' -H \'Authorization:Bearer"+auth+" \' -H \'Content-Type: application/json\'")
但不适用于以下查询
os.system("curl -X POST \'https://api.loganalytics.io/v1/workspaces/0000000000000000000000-c05f0ccc198d/query\' -d \'{\"query\": \"search in (ContainerLog) \"error\" | where TimeGenerated > datetime(\"2020-09-09\") | project LogEntry\"}\' -H \'Authorization:Bearer "+auth+"\' -H \'Content-Type: application/json\'")
错误:
{“错误”:{“消息”:“请求具有一些无效的属性”,“代码”:“ BadArgumentError”,“ correlationId”:“ 3cf07489-2a00-4ef6-9c00-15bd7d1be648”,“详细信息”: [{“ code”:“ InvalidJsonBody”,“ message”:“ JSON中位置38上的意外令牌e”,“ target”:null}],“ innererror”:{“ code”:“ QueryValidationError”,“ message”: “无法解析查询”}}}
解决方法
对于\"error\"
和\"2020-09-09\"
,应使用单引号而不是双引号。
例如,使用\'error\'
代替\"error\"
;使用datetime(\'2020-09-09\')
代替datetime(\"2020-09-09\")
查询如下所示:
os.system("curl -X POST \'https://api.loganalytics.io/v1/workspaces/0000000000000000000000-c05f0ccc198d/query\' -d \'{\"query\": \"search in (ContainerLog) \'error\' | where TimeGenerated > datetime(\'2020-09-09\') | project LogEntry\"}\' -H \'Authorization:Bearer "+auth+"\' -H \'Content-Type: application/json\'")
,
use the below code
import requests
url = "https://api.loganalytics.io/v1/workspaces/{workspace_id}/query"
payload = "{\"query\": \"search in (ContainerLog) 'error' | top 50 by TimeGenerated asc | project LogEntry\"}"
headers = {
'Authorization': 'Bearer access token','Content-Type': 'application/json'
}
response = requests.request("POST",url,headers=headers,data = payload)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。