Azure Functions v4(私有VNet)无法连接Azure SQL求助
Azure Functions v4 无法连接Azure SQL Server问题排查
问题概述
查阅多篇文章和帖子后,仍无法让v4版Functions应用连接到Azure SQL Server,但另一个VNet中的常规Web应用无需额外配置即可直接访问该数据库。
VNet配置详情
- VNet: 10.0.0.0/24
- DMZ子网: 10.0.0.0/27
- Web应用集成子网: 10.0.0.32/29(连接对等VNet内的API)
- 存储子网: 10.0.0.40/29
- Functions应用集成子网: 10.0.0.48/29
- 资源子网: 10.0.0.64/27
Functions应用配置
网络配置
- 入站流量经DMZ,通过集成子网实现VNet集成,已启用「出站互联网流量」「内容存储」选项
- 集成子网已添加
Microsoft.Sql、Microsoft.Storage服务端点 - VNet中配置了指向安全存储的私有DNS区域:
privatelink.blob.core.windows.net和privatelink.file.core.windows.net
应用设置
- 删除了
AzureWebJobsStorage配置项 AzureWebJobsStorage__accountname= <我的存储账户名称>AzureWebJobsStorage__credential= managedidentityAzureWebJobsStorage__clientId= <托管标识客户端ID>WEBSITE_CONTENTOVERVNET= 1WEBSITE_VNET_ROUTE_ALL= 1
SQL Server配置
- 已为Functions应用集成子网配置虚拟网络规则
- 使用的连接字符串(在其他应用中可正常运行):
Server=tcp:mydb.database.windows.net,1433;Database=MyDatabase;User Id=
;Authentication=Active Directory Managed Identity;MultipleActiveResultSets=True;App=MyFunction
说明:<Managed Ident Client Id>为用户分配的托管标识客户端ID
错误信息
数据库连接验证端点抛出以下错误:
建立与SQL Server的连接时出现与网络相关的或特定于实例的错误。未找到服务器或无法访问服务器。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(provider: Named Pipes Provider, error: 40 - 无法打开到SQL Server的连接)
已验证操作
- 添加
Microsoft.Sql服务端点前后,错误均存在 - 通过Functions应用控制台执行
tcpping mydb.database.windows.net:1433可成功连通 - 同类型配置的常规Web应用可直接连接目标SQL Server
内容的提问来源于stack exchange,提问作者Josh
相关产品推荐
相关产品推荐

