Azure functions pyodbc.connect()在首次尝试从Azure函数连接到Azure SQL时失败

Azure functions pyodbc.connect()在首次尝试从Azure函数连接到Azure SQL时失败,azure-functions,azure-sql-database,pyodbc,Azure Functions,Azure Sql Database,Pyodbc,我正在尝试使用带有令牌身份验证的pyodbc.connect()从Azure函数连接到Azure SQL。Azure SQL DB已配置自动暂停。如果在SQL DB“暂停”后调用Azure函数,则第一次尝试总是失败 我尝试将timeout参数添加到pyodbc.connect()中,timeout=60,但仍遇到错误,例如: ('HY000', "[HY000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Databas

我正在尝试使用带有令牌身份验证的pyodbc.connect()从Azure函数连接到Azure SQL。Azure SQL DB已配置自动暂停。如果在SQL DB“暂停”后调用Azure函数,则第一次尝试总是失败

我尝试将timeout参数添加到pyodbc.connect()中,timeout=60,但仍遇到错误,例如:

 ('HY000', "[HY000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Database '<DB_NAME>' on server
 '<SERVER_NAME>.database.windows.net' is not currently available. Please retry the connection later. If
 the problem persists, contact customer support, and provide them the session tracing ID of 
'{<TRACKING_ID>}'. (40613) (SQLDriverConnect)")
('HY000',“[HY000][Microsoft][ODBC驱动程序17 for SQL Server][SQL Server]数据库”位于服务器上
“.database.windows.net”当前不可用。请稍后重试连接。如果
如果问题仍然存在,请与客户支持联系,并向他们提供的会话跟踪ID
“{}.”(40613)(SQLDriverConnect)”)

如何确保我对Azure SQL的第一次调用不会失败?

正如您所说,如果您的数据库被暂停,我们将无法访问它

如果不知道数据库状态,我们无法确保您对Azure SQL的第一次调用不会失败。正确的想法或解决方案是,在运行Azure函数之前,您首先需要发送连接请求以唤醒SQL DB,然后该函数可以连接到Azure SQL DB而不会出现错误


HTH.

正如您所说,如果您的数据库被暂停,我们将无法访问它!我们无法确保您对Azure SQL的第一次调用不会失败,因为数据库已暂停。我想这是有道理的。那么,最初发送连接请求以唤醒SQL DB(可能在Azure函数之外)的解决方案是否允许剩余的Azure函数代码在没有连接问题的情况下运行?是的,您应该在Azure函数运行之前恢复数据库。