You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

查询Log Analytics Workspace表时遇Requested Path Does Not Exist错误求助

问题:查询Log Analytics的AppAvailabilityResults表时出现PathNotFoundError

我正在做一个实验,流程是用Azure Python SDK创建包含AKS集群、Log Analytics工作区和工作区型Application Insights的资源组,接着部署服务创建可用性测试,最后通过Flask应用的路由发起GET请求,查询工作区日志里的AppAvailabilityResults表。前面步骤都正常,也确认了代码里的凭证和Log Analytics信息是对的,但请求时出现以下错误:

raise HttpResponseError(message=error.message, response=error.response, model=model)
azure.core.exceptions.HttpResponseError: (PathNotFoundError) The requested path does not exist
Code: PathNotFoundError
Message: The requested path does not exist
INFO:werkzeug:127.0.0.1 - - [14/Sep/2023 14:34:02] "GET /checks HTTP/1.1" 500 -

相关代码如下:

# Check Log Analytics and return results
def query_availability_results():
    try:
        query_client = LogsQueryClient(credentials)

        query = """
        AppAvailabilityResults
        """

        # Use timespan in query
        response = query_client.query_workspace(workspace_id=LOG_ANALYTICS_WORKSPACE.id, query=query, timespan=timespan)
        result_tables = LogsQueryResult.tables(response)

        return result_tables

    except Exception as e:
        app.logger.error(f"Error querying Log Analytics: {str(e)}")
        return None

# API route to check uptime
@app.route("/checks")
def get_checks():
    app.logger.info("Received request for /checks")
    # Execute the query and handle errors
    availability_results = query_availability_results()

    if availability_results is None:
        return jsonify({"error": "Error querying Log Analytics"}), 500

    checks = []
    try:
        for row in availability_results[0]:
            check = {
                "timeGenerated": row.get("timeGenerated", ""),
                "name": row.get("name", ""),
                "duration": row.get("durationMs", ""),
                "success": row.get("success", ""),
                "location": row.get("location", ""),
            }
            checks.append(check)
    except Exception as e:
        app.logger.error(f"Error parsing Log Analytics results: {str(e)}")
        return jsonify({"error": "Error parsing Log Analytics results"}), 500

    return jsonify(checks)

解决思路

  • 检查工作区ID格式:确认LOG_ANALYTICS_WORKSPACE.id是否为Log Analytics工作区的纯GUID,而非完整资源路径(如/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.OperationalInsights/workspaces/xxx)。query_workspace方法仅接受GUID格式的工作区ID,传入完整路径会直接导致路径错误。
  • 验证timespan参数有效性:确保timespan变量格式符合要求,比如P1D(过去1天)、PT1H(过去1小时),或具体时间范围2023-09-13T00:00:00Z/2023-09-14T00:00:00Z。无效的时间格式可能引发服务端解析错误,返回路径不存在的提示。
  • 确认表存在性与数据同步:在Azure Portal的Log Analytics工作区中手动运行AppAvailabilityResults查询,验证表是否存在。可用性测试数据需要时间同步到Log Analytics,若测试刚创建,可能还未生成表或数据,导致查询失败。
  • 检查SDK版本与权限:更新azure-monitor-query SDK到最新稳定版,旧版本可能存在API路径兼容问题。同时确认凭证对应的身份拥有Log Analytics Reader或更高权限,权限不足有时会伪装成路径错误返回。
  • 排查凭证初始化问题:确认credentials是正确初始化的DefaultAzureCredential或其他有效凭证,且已授予访问目标Log Analytics工作区的权限。若凭证未正确获取访问令牌,请求可能被路由到错误路径。

内容的提问来源于stack exchange,提问作者maj1n

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 00:47:02