我尝试遵循MS official doc从Azure日志监视器的资源中获取日志,但从未成功。 我的代码如下所示。
from azure.loganalytics import LogAnalyticsDataClient
from azure.common.client_factory import get_client_from_cli_profile
from azure.loganalytics.models import QueryBody
log_client = get_client_from_cli_profile(LogAnalyticsDataClient)
myWorkSpaceId = '1234567890...'
result = log_client.query(myWorkSpaceId, QueryBody(**{'query': 'Heartbeat| limit 50'}))
我总是会遇到如下异常:
result = log_client.query(myWorkSpaceId, QueryBody(**{'query': 'Heartbeat| limit 50'}))
File ".../lib/python2.7/site-packages/azure/loganalytics/log_analytics_data_client.py", line 121, in query
raise models.ErrorResponseException(self._deserialize, response)
azure.loganalytics.models.error_response.ErrorResponseException: (MissingApiVersionParameter) The api-version query parameter (?api-version=) is required for all requests
我将代码跟踪到/azure/loganalytics/log_analytics_data_client.py中的库中,并转储用于查询的url字符串,如下所示。
print(url, query_parameters, header_parameters, body_content)
request = self._client.post(url, query_parameters)
response = self._client.send(request, header_parameters, body_content, stream=False, **operation_config)
URL和查询信息的输出如下所示,并且它们之间似乎没有版本信息,我怀疑这就是为什么我得到异常的原因: ('https://management.azure.com/workspaces/1234567890.../query',{},{'Content-Type':'application / json; charset = utf-8'},{'query':'Heartbeat | limit 50'})
我的azure SDK版本是4.0.0,我的azure-loganalytics库版本是v0.1.0,可在Ubuntu上运行。 是否有人遇到相同问题或不知道如何解决此问题?
谢谢。