同一子网下ADF调用Synapse管道遇报错,寻求私有端点调用方法
核心解决思路
既然ADF和Synapse处于同一子网且均禁用公网访问,必须让调用流量完全走VNet内部私有链路,核心是替换公网调用地址为私有端点FQDN,并确保DNS解析正常。
具体操作步骤
确认Synapse私有端点的DNS配置
在Azure私有DNS区域中创建对应后缀的区域(如privatelink.dev.azuresynapse.net),将该区域关联到ADF和Synapse所在的子网。在私有DNS区域内添加Synapse私有端点的A记录,指向其私有IP,确保子网内资源能正确解析私有端点FQDN。修改ADF Web活动的调用地址
替换原公网地址https://<workspace>.dev.azuresynapse.net为Synapse私有端点的FQDN(格式通常为https://<workspace>-privatelink.dev.azuresynapse.net,该地址可在Synapse私有端点的属性页面获取),Web活动的请求路径保持不变,比如/pipelines/<your-pipeline-name>/createRun。确保ADF启用虚拟网络集成
检查ADF的虚拟网络集成状态,确认已加入Synapse所在的子网(或对等互连的子网),保证ADF的出站流量直接走VNet内部,不会尝试走公网。验证网络连通性
在ADF集成运行时所在子网部署测试VM,执行以下命令测试连通性:curl -i https://<synapse-private-fqdn>/pipelines/<your-pipeline-name>/createRun -H "Authorization: Bearer <access-token>"若返回202 Accepted等正常HTTP响应,说明私有链路连通正常。
配置权限与认证
使用ADF的托管标识(MSI)进行认证,确保该MSI拥有Synapse工作区的Synapse Contributor权限或目标Pipeline的具体执行权限,避免依赖公网的认证方式,保证认证流量走Azure内部链路。
内容的提问来源于stack exchange,提问作者Prawin

