#json #python-3.x #azure #azure-devops #azure-api-management
#json #python-3.x #azure #azure-devops #azure-api-management
Вопрос:
Я пытался запустить запрос log analytics с использованием 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'")
Ошибка :
{«ошибка»:{«сообщение»:»В запросе были некоторые недопустимые properties»,»code»:»BadArgumentError»,»correlationId»:»3cf07489-2a00-4ef6-9c00-15bd7d1be648″,»details»:[{«code»:»InvalidJsonBody»,»message»:» Неожиданный токен e в JSON в позиции 38″, «target»: null}], «innererror»:{«code»: «QueryValidationError», «message»: «Не удалось выполнить синтаксический анализ запроса»}}}
Ответ №1:
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)
Ответ №2:
Вы должны использовать одинарные кавычки вместо двойных для "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'")
Комментарии:
1. {«ошибка»:{«сообщение»:»Запрос содержал некоторые недопустимые properties»,»code»:»BadArgumentError»,»correlationId»:»086c0ed6-3058-4dc1-95b6-9c22a2db1044″,»innererror»:{«code»:»SemanticError»,»message»:» Произошла семантическая ошибка.»,»innererror»:{«code»: «SEM0100», «message»:»оператор ‘where’: не удалось разрешить скалярное выражение с именем ‘error'»}}}}
2. @pappu.jerin, пожалуйста, попробуйте использовать этот запрос
search in (ContainerLog) 'error' | where TimeGenerated > datetime('2020-09-09') | project LogEntry
на этой странице и посмотрите, по-прежнему ли возникает ошибка.3. и, пожалуйста, не забудьте заполнить поля «Идентификатор рабочей области» и «Ключ API» своим реальным значением.