查询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-querySDK到最新稳定版,旧版本可能存在API路径兼容问题。同时确认凭证对应的身份拥有Log Analytics Reader或更高权限,权限不足有时会伪装成路径错误返回。 - 排查凭证初始化问题:确认
credentials是正确初始化的DefaultAzureCredential或其他有效凭证,且已授予访问目标Log Analytics工作区的权限。若凭证未正确获取访问令牌,请求可能被路由到错误路径。
内容的提问来源于stack exchange,提问作者maj1n
相关产品推荐
相关产品推荐

