使用Python SDK和CLI客户端凭据查询Azure Application Insights API时缺少MissingApiVersionParameter

问题描述

当我尝试使用 Python SDK 查询 Application Insights 时-使用 Azure CLI客户端凭据

client = get_client_from_cli_profile(ApplicationInsightsDataClient)

appInsightsQuery = QueryBody(query="""requests
        | where timestamp >= ago(1d)
        | summarize count() by user_AuthenticatedId""")

print(client.query.execute(appInsightsAppId,appInsightsQuery).tables[0])

我收到此错误

(MissingApiVersionParameter) The api-version query parameter (?api-version=) is required for all requests.

解决方法

从此Log Analytics问题https://github.com/Azure/azure-sdk-for-python/issues/4544开始转变-对于azure-applicationinsights 0.1.0的当前版本-ApplicationInsightsDataClient的创建需要修改:

creds,_ = get_azure_cli_credentials(resource="https://api.applicationinsights.io")
client = ApplicationInsightsDataClient(creds)

appInsightsQuery = QueryBody(query="""requests
        | where timestamp >= ago(1d)
        | summarize count() by user_AuthenticatedId""")

print(client.query.execute(appInsightsAppId,appInsightsQuery).tables[0])
,

此问题已在azure-common 1.1.26中修复。 https://pypi.org/project/azure-common/1.1.26/

重新安装新的虚拟环境,或者更新azure-common,您应该没问题:)

(我在Python SDK团队的MS部门工作)