基于Private Endpoint的Azure Data Factory REST接口调用故障排查
故障场景
- 部署于专用虚拟网络、已禁用公网访问、采用专用终结点接入的Azure Data Factory(以下简称ADF)实例,在复制活动(Copy Activity)中配置REST数据源指向Azure Maps服务REST终结点时,作业运行抛出如下连接错误:
发送请求时发生错误。无法连接到远程服务器。连接尝试失败,原因为连接方在一段时间后未正确响应,或已建立的连接因目标主机无响应而失败
- 经公网、专用网络环境运行对比,全链路配置初核查验,确认故障由专用网络配置偏差导致。
核心根因
- Azure Maps的专用终结点接入存在独立的配置规则,和Azure存储、Azure SQL等通用服务的私网配置模板不通用。默认私网部署的ADF如果未完成Azure Maps侧私网授权、私网DNS解析修正、ADF侧出站放行三个核心环节的配置,流量要么被路由到公网被访问拦截,要么路由到私网但无对应解析记录/访问权限,最终触发连接超时,和ADF复制活动本身的功能逻辑无关。
修复操作步骤
1. 配置Azure Maps侧专用访问规则
- 进入目标Azure Maps账户的网络配置面板,将公共网络访问选项设置为「已禁用」,切换为纯专用访问模式
- 为Azure Maps账户新建专用终结点,终结点部署的虚拟网络/子网需和ADF所在网络保持连通:同VNET可直接复用,跨VNET需提前配置VNET对等互连保证路由可达
- 专用终结点创建流程中,目标子资源必须选择
maps类型,创建完成后手动确认终结点状态为「已批准」,避免处于待审批、拒绝状态导致流量不通。
2. 修正私网DNS解析配置(最高发漏项)
- 禁止依赖Azure默认公共DNS解析Azure Maps服务域名,需在ADF、Azure Maps终结点所在VNET关联的专用DNS区域中添加Azure Maps对应的私网解析规则
- 需创建的专用DNS区域固定名称为
privatelink.atlas.microsoft.com,将该区域关联到所有涉及的VNET后,系统会自动同步Azure Maps专用终结点的A记录 - 解析结果校验:在同VNET内的测试虚拟机上执行nslookup命令查询业务调用的Azure Maps REST域名,确认返回结果为Azure Maps专用终结点的私网IP,而非公网IP,校验命令参考:
nslookup <your-azure-maps-account-name>.atlas.microsoft.com
3. 放行ADF侧出站流量
- 若ADF采用托管VNET集成运行时(IR),检查该运行时所在子网绑定的网络安全组(NSG)出站规则,确保没有拦截到Azure Maps专用终结点私网IP段443端口的HTTPS流量
- ADF REST链接服务配置中不要强制指定公网代理,所有发往Azure Maps的流量需走VNET内部路由转发
- 若ADF采用自托管集成运行时,需确认运行时所在主机到Azure Maps专用终结点的路由可达,主机本地防火墙、中间网络虚拟设备(NVA)没有拦截443端口出站流量。
4. 连通性校验与作业验证
- 回到ADF的REST数据源链接服务配置页,确认填入的Azure Maps REST终结点为账户对应的官方标准域名,不要硬编码公网IP、不要使用自定义中转域名
- 链接服务测试连接时,必须选择关联了对应VNET的集成运行时,不要选择自动解析运行时、公网运行时
- 正式触发作业前,可先在同VNET测试虚拟机上用curl命令携带Azure Maps访问密钥调用接口,验证端到端连通性,命令参考:
curl "https://<your-azure-maps-account-name>.atlas.microsoft.com/geocode?api-version=2023-06-01&addressLine=1 Microsoft Way&subscription-key=<your-access-key>"
- 接口调用返回正常结果后,重新触发ADF复制活动即可恢复正常通信。
内容的提问来源于stack exchange,提问作者Pouyan Nikzad
相关产品推荐
相关产品推荐

