Azure 函数静态隔离



我找不到太多关于在应用服务计划中隔离 Azure 函数的文档。

如果您共享一个静态变量,例如 azure 函数调用之间的HttpClient,我认为通读可伸缩性建议,它可以在同一进程中运行,也可以在同一进程中运行,也可以在不同的进程或单独的服务器中运行......这很好,使用Lazy<T>可以帮助解决线程问题。

但是,单独的 Azure 函数是否可以共享一个工作进程?即我是否应该隔离静态变量以确保函数的隔离?我使用带有函数键的ConcurrentDictionary收集是帮助解决此问题的好方法,但我还没有找到任何讨论隔离的文档。

可以通过拥有一个或多个函数应用来管理此内容:

同一函数应用
  • 的不同函数将在同一进程中运行,并将任何静态状态与在同一主机上运行的同一应用的其他函数重用。

  • 不同函数应用的功能彼此隔离。

要直观地看到这一点,您可以转到Kudu(每个应用程序(。在"环境"选项卡上,你会看到计算机名称,因此可以检查两个应用是否在同一台计算机上运行。然后,在"进程资源管理器"选项卡上,你将看到分配给特定函数应用的w3wp.exe进程。

最新更新