ADF通过REST连接器经SHIR访问内网API连接失败问题咨询
ADF REST连接器经SHIR访问内网API测试连通但任务失败排查方案
故障现象:Azure Data Factory REST连接器配置使用自承载集成运行时(SHIR)访问公司内网API,链接服务连接测试可成功通过,但数据集无法读取数据,复制活动执行时报错。
核心错误码:UserErrorFailToReadFromRestResource,底层异常为Socket连接超时:连接尝试失败,因为连接方在一段时间后未正确响应,或已建立的连接因被连接主机无响应而失败。
基础网络层排查
链接服务的连接测试仅做轻量级端点探测,不会发起和实际数据读取完全一致的业务请求,优先在SHIR部署主机上做本地验证:
- 直接登录部署SHIR的Windows服务器主机,所有网络测试都必须在该主机上执行,不要使用办公电脑、跳板机的测试结果作为判断依据
- 在该主机上使用Postman、PowerShell等工具,发起和ADF中配置完全一致的API请求,匹配相同的请求方法、鉴权信息、请求头、请求参数、完整URL
- 如果本地请求同样超时/连接失败,按以下项逐一定位:
- 校验DNS解析结果:在SHIR主机执行
nslookup <你的API域名>,确认返回的IP地址为内网API的正确地址,排除解析到公网无效IP的问题 - 校验端口连通性:在SHIR主机执行
Test-NetConnection <API访问地址> -Port <API服务端口,通常为80/443>,如果返回TcpTestSucceeded为False,逐段排查内网防火墙、网络安全组、API主机侧防火墙规则,确认放通SHIR主机到API服务的入站、出站访问权限 - 如果API前端部署有内网负载均衡、反向代理,确认SHIR到LB/代理的连通性正常,不存在路由转发超时、会话保持配置错误的问题
- 校验DNS解析结果:在SHIR主机执行
- 如果SHIR主机本地请求完全正常,进入配置层排查
ADF配置差异排查
- 校验URL拼接规则:REST链接服务的基地址仅需填写API服务的根域名/根路径,具体接口路径需填写在数据集、复制活动源的相对URL配置项中,避免基地址携带过长路径导致拼接错误,请求被路由到无响应的无效地址
- 校验动态参数逻辑:如果使用了参数化的相对URL、请求头、请求体配置,先执行调试运行,输出任务实际拼接后的完整请求内容,和SHIR本地测试成功的请求逐字段对比,排除参数拼接错误、特殊字符未转义导致的路由异常
- 校验分页配置:如果开启了REST连接器的自动分页功能,确认下一页请求的URL规则、参数传递规则配置正确,避免分页请求被发送到无效地址触发超时
- 校验代理配置一致性:如果SHIR主机需要通过内网代理访问API,除了系统层面的代理配置外,必须打开SHIR配置管理器,在代理设置页填写完全一致的代理地址、内网地址免代理白名单。链接服务测试可读取部分系统代理配置,但实际数据复制任务优先读取SHIR自身的代理规则,配置不一致会直接导致任务请求走不通
SHIR运行态排查
- 校验服务运行账号权限:如果SHIR服务未使用默认Local System账号运行,而是配置了自定义本地账号/域账号作为服务运行账号,需确认该账号具备对应的网络访问权限、DNS解析权限、代理访问权限,避免账号权限不足导致请求被系统拦截
- 升级SHIR至最新稳定版本:旧版本SHIR存在HTTP请求处理、TLS协议适配的已知bug,会偶发连接测试正常但实际任务请求失败的问题,升级完成后重启SHIR服务再重试任务
- 临时关闭主机安全防护测试:部分EDR、第三方防火墙软件会静默拦截系统服务发起的出站请求(手动启动的Postman等用户进程请求不会被拦截),临时关闭相关防护后重试任务,如果恢复正常则将SHIR服务进程加入防护白名单
内容的提问来源于stack exchange,提问作者user2134877
相关产品推荐
相关产品推荐

