Azure Function App - Python - 无需重新初始化的单一连接

Azure Function App - Python - Single connection without re-initializing

我正在使用由服务总线队列触发的 Python 函数应用程序将数据存储在 SQL 服务器中。我需要处理与 SQL 服务器的连接。

我找到了这个 。具体来说,人们经常在 main 函数之外发起一个连接,然后在 main 函数中使用它。按照文档,可以重新使用连接。但问题是:Microsoft 教程仅使用 C# 和 JavaScript.

制作

我尝试了下面的示例源代码,它运行良好,但我不知道函数应用程序是否会创建新连接。

import azure.functions as func

connection = getConnection()

def main(msg: func.ServiceBusMessage):
    # get content of message
    mess = msg.get_body().decode("utf-8")
    logging.info(mess)
    message = eval(str(mess))  # Sensitive

    # handle scenarios
    data = handle_message_from_device(message)
    insert(connection, data)

我想问:

提前致谢:-)

是的,这应该可以正常工作。 connection = GetConnection() 在函数(冷)启动时仅被调用一次。从那里开始它停留 "warm" 大约 5 分钟。如果另一个请求进入 - 到函数的同一个实例 - 它将被重用。超时后,您的函数将被回收。在下次调用时,它会再次启动并创建另一个连接对象。

您可以通过向 GetConnection() 方法添加一些日志记录来简单地测试它。你会看到这只会在第一次启动时执行。对于接下来的几个 seconds/minutes 中的后续请求,它不会被再次调用。当然,除非您的函数扩展到其他实例。