部署在同一 Azure 函数应用程序中的多个函数是否共享冷启动?

Do multiple functions deployed in same Azure function app share a cold start?

我使用 C#/.Net Core 3.1 创建了两个 Azure 函数并将它们部署为 Function App。添加Scale controller日志后,我观察到两个函数只有一个冷启动,即“函数主机初始化”。

我的假设是,在幕后,Azure 在同一个容器中部署了两个“功能”,这说明两者要么有冷启动,要么没有全部。这不同于单独部署的 AWS lambda 函数,后者导致每个 Lambda 都有自己的冷启动。

我不确定我的理解是否正确,因为我找不到任何关于 Function 应用程序的内部结构以及它在幕后如何工作的文档。

有谁知道这个并且可以确认或指出正确的方向吗?

在 MS 解释新的 V3 隔离模式的文档中,您可以看到:

Azure Functions has only supported a tightly integrated mode for .NET functions, which run as a class library in the same process as the host. This mode provides deep integration between the host process and the functions. For example, .NET class library functions can share binding APIs and types.

所以你所有的函数共享一个底层进程。因此,您看到的功能。如果您希望您的函数被隔离,现在 v3 函数应用程序支持此功能。

Reference