Azure Synapse Analytics调用Web Activity报404 NotFound错误
报错根因
该404 NotFound报错和权限配置无关,核心原因是Web活动发出的HTTP请求指向的资源路径不存在,常见触发场景如下:
- 混淆了Azure Data Factory和Azure Synapse的服务端点:ADF资源管理接口域名为
management.azure.com,Synapse专用接口域名为dev.azuresynapse.net,两者API路径规则完全不同,直接套用错误域名的路径模板会直接返回404 - 请求URL拼接错误:引用管道系统动态参数(如订阅ID、资源组名、工厂名、管道运行ID)时拼写错误、漏填占位符,导致实际发出的请求里资源标识为空或不正确,服务端找不到对应资源
- API版本或路径写错:查询管道运行信息的REST API对路径段、api-version参数校验严格,漏写路径层级、使用已废弃/不存在的API版本号都会触发该错误
- 网络链路问题:如果Web活动绑定了自托管集成运行时,本地网络的代理、防火墙、DNS解析规则异常,会导致请求没有送达Azure服务端,中间网关返回404错误
排查&解决方案
按以下顺序逐次排查即可快速修复:
- 定位实际请求内容:打开管道运行监控页,找到失败的Web活动,查看活动的「输入」详情,复制实际发出的完整请求URL,和官方API路径格式逐段比对,重点核对:
- 订阅ID、资源组名、数据工厂/Synapse工作区名称是否和当前运行实例完全一致,无拼写错误
pipelineruns路径段后拼接的运行ID是否为当前管道的真实运行ID,无空值、错值- URL末尾的
api-version参数值是否为官方文档标注的可用版本,不要随意修改版本号
以ADF查询单个管道运行的正确URL格式为例:
https://management.azure.com/subscriptions/{你的订阅ID}/resourceGroups/{你的资源组名}/providers/Microsoft.DataFactory/factories/{你的ADF工厂名}/pipelineruns/{当前管道运行ID}?api-version=2018-06-01 - 校验集成运行时配置:将Web活动绑定的集成运行时切换为默认的Auto-resolve(Azure自动托管解析运行时),不要用自托管IR发起Azure REST API请求,排除本地网络链路的干扰
- 兜底权限校验:确认Web活动使用的托管标识,已在对应数据工厂/Synapse工作区的IAM配置中授予了
Data Factory Contributor及以上权限,且角色赋值范围覆盖当前实例——注意权限缺失通常返回403错误,该项仅为兜底校验项
90%以上的同类报错都是动态拼接URL时参数值错误导致的,优先查看活动实际发出的请求内容即可快速定位问题点,不需要反复调整权限配置。
内容的提问来源于stack exchange,提问作者JakeerS
相关产品推荐
相关产品推荐

