使用Python访问Azure Log Analytics工作区时出现PathNotFoundError
解决Azure Log Analytics Python SDK PathNotFoundError(404)问题
核心排查与修复
资源ID错误/不完整
你使用的monitor_resource_id里,订阅IDec1e-4764-9ebf是不完整的——Azure订阅ID是36位GUID格式(示例:12345678-1234-1234-1234-1234567890ab)。请登录Azure门户,进入目标Log Analytics工作区的「概述」页面,复制完整的资源ID替换现有值。
同时确认资源组名称、工作区名称和Azure门户中的完全一致,避免因拼写错误导致路径找不到。区域端点未指定(可选)
如果你的Log Analytics工作区不在默认区域,需要为LogsQueryClient指定对应区域的端点,示例:logs_query_client = LogsQueryClient(credential, endpoint="https://eastus.loganalytics.azure.com")将
eastus替换为工作区实际所在的区域名称(如westeurope、southeastasia等)。
代码优化建议
你在KQL查询中手动添加了TimeGenerated过滤,同时又传入了timespan参数,两者功能重复,建议保留其中一种即可,避免逻辑冲突:
- 方案一:删除查询中的时间条件,仅用
timespan参数 - 方案二:删除
timespan参数,保留查询里的TimeGenerated过滤
验证步骤
- 确认Azure门户中目标Log Analytics工作区确实存在,且资源ID复制无误。
- 确保
DefaultAzureCredential能正常获取权限(可通过本地Azure CLI登录、配置环境变量等方式验证)。 - 用极简查询测试,比如
query = "AzureActivity | take 10",排除查询语句本身的问题。
内容的提问来源于stack exchange,提问作者vaibhav
相关产品推荐
相关产品推荐

