Azure 函数应用程序抛出“数据库通信链接失败”错误并停止工作

问题描述 投票:0回答:2

HTTP触发函数应用程序使用Python 3.x构建,并使用pyodbc和ODBC Driver 17 for SQL Server与部署在同一资源组和同一区域的SQL Server DB进行通信。函数应用程序时不时地抛出 ('08S01', '[08S01] [Microsoft][ODBC Driver 17 for SQL Server]Communication link failure (0) (SQLExecDirectW)') 错误(使用日志进行验证)并返回响应错误。

当我们重新部署功能应用程序并继续工作一段时间后,这个问题立即得到解决,并再次变得明显(由于该问题,昨天晚上重新部署,工作正常,直到早上重新检查,问题才解决)又在那里)。这个功能应用程序一直按预期工作,直到几天前我们发布了带有一些改进的新版本。

我们在另外 2 个 Azure 目录(开发实例和测试实例)中部署了完全相同的功能应用程序(最新版本)和设置(包括数据库),并且它们运行顺利。唯一的区别是服务层(生产版本使用高级计划,而开发和测试使用消费计划)。

尝试禁用高级计划中的“始终开启 - 保持至少一个功能应用程序实例运行”功能,以验证是否是由于数据库会话问题造成的,但这并没有效果。还在数据库白名单中添加了功能应用程序的IP,以防万一(天蓝色资源可以访问数据库功能也已开启,所以我猜添加功能应用程序的IP不是强制性的),但这也不起作用。

任何有关该主题的支持或专业知识将不胜感激

python-3.x azure-functions azure-sql-database pyodbc
2个回答
0
投票

我相信并猜测服务器和客户端之间的 ODBC 驱动程序/连接器会存在版本不匹配的情况。

或者

可能与Production Slot中Azure SQL数据库的使用限制有关。您能否检查一下是否有类似的计算数据库使用量的大小,如果接近定义的配额,则增加它!

如果稍后出现相同的错误,请将函数日志数据和调用 ID 以及错误详细信息以及您的订阅 ID 和函数应用程序名称通过电子邮件发送至

[email protected]
,因为 Microsoft Azure 支持将进行分析以查找Azure Function App 的根本原因 - SQL DB 连接错误。


0
投票

嗨@Nethmal Warusamana, 您能否解释一下您是如何解决该问题的?我也面临类似的问题

© www.soinside.com 2019 - 2024. All rights reserved.