You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure专用端点问题:另一VNet的Azure函数无法连接Azure SQL数据库

排查启用Route All的VNet中Azure函数无法连接私有端点Azure SQL的问题

核心问题定位

从你提供的测试结果来看,nameresolver返回SQL实例的公网IP,但SQL已拒绝公网访问,这说明函数应用的DNS解析未指向SQL专用端点的私有IP,是连接失败的核心原因。以下是具体排查步骤:

1. 检查函数应用的VNet集成DNS设置

  • 启用Route All的Azure Functions默认使用Azure公共DNS(168.63.129.16),而公共DNS无法解析SQL专用端点的私有IP。需确认函数应用的虚拟网络集成配置中,是否开启了“使用虚拟网络的DNS服务器”,或手动指定了能解析私有DNS的服务器IP。
  • 若函数所在VNet关联了Azure专用DNS区域,必须让函数应用使用该VNet的DNS配置,才能正确解析SQL的FQDN到私有IP。

2. 验证SQL专用端点的DNS关联

  • 确认Azure SQL的专用端点已关联privatelink.database.windows.net类型的Azure专用DNS区域,且该DNS区域已与函数所在的VNet建立链接(在专用DNS区域的“虚拟网络链接”中查看)。
  • 检查专用DNS区域内的A记录:是否存在对应SQL实例的条目,其值为专用端点的私有IP。若缺失,需重新创建专用端点或手动添加记录。

3. 修正函数应用的DNS配置

  • 在函数应用的配置中,添加或修改以下应用设置:
    • WEBSITE_DNS_SERVER:设置为私有DNS服务器的IP(若用Azure专用DNS区域,可使用Azure DNS的私有IP,或VNet内的自定义DNS服务器)
    • 确认WEBSITE_VNET_ROUTE_ALL=1已正确配置(你已启用Route All,需确保该值存在)
  • 修改后重启函数应用,再次用nameresolver测试,查看是否返回私有IP。

4. 验证网络流量路径与NSG规则

  • 虽然tcpping显示1433端口可通,但需确认流量实际走VNet内部而非公网:可通过Azure Monitor的网络流量分析,查看函数到SQL的连接目标IP是否为专用端点的私有IP。
  • 检查函数所在子网的NSG出站规则:是否允许到SQL专用端点子网的1433端口流量;同时检查SQL专用端点所在子网的NSG入站规则:是否允许来自函数子网的1433端口流量。

5. 手动测试私有DNS解析

  • 在函数的Kudu控制台中,执行指定DNS服务器的解析测试:
    nslookup <你的SQL实例FQDN> <私有DNS服务器IP>
    
    若返回私有IP,说明DNS服务器正常,问题出在函数应用的DNS配置;若仍返回公网IP,需排查专用DNS区域的链接或记录是否正确。

6. 确认专用端点与VNet权限

  • 检查SQL专用端点的状态是否为“已批准”,未批准的端点无法正常提供服务。
  • 确认函数所在的VNet子网是否被添加到SQL实例的虚拟网络规则中(虽然专用端点优先,但部分场景下仍需配合VNet规则放行流量)。

内容的提问来源于stack exchange,提问作者David Baker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 13:25:23