Azure Functions - 跨函数应用程序共享代码

Azure Functions - Shared code across Function Apps

有没有办法在 Azure 中的两个不同的 Function Apps 之间共享公共代码?

我知道可以在同一个函数应用程序下的两个函数之间共享代码,如下所示:

#load "../Shared/ServiceLogger.csx"

但我想在两个不同的函数之间共享日志记录代码,每个函数都在它自己的 Function App 下。这些功能在两个不同的功能应用程序下的原因是我需要一个 运行 在消费计划上,另一个 运行 在应用程序服务计划上,除非有另一种方法吗?

在 Azure 应用服务中没有跨应用程序边界共享代码的直接方法,这对于函数应用程序和 Web 应用程序都适用。您需要将相关代码部署到每个需要它的应用中。

在修复 VS17 预览版(将函数视为普通 cs 文件并允许项目引用)之前,我为解决此问题所做的工作是我有一个共享的 class 项目,其中有一个 post将 dll 放入文件夹中的 Azure 函数项目的构建事件。然后用 #r "file path to the dll"

引用它们

重用代码的一种方法是将预编译程序集/class 库与您的函数一起使用。 Donna Malayeri 发表了一篇博客 post 解释如何实现这一目标:https://blogs.msdn.microsoft.com/appserviceteam/2017/03/16/publishing-a-net-class-library-as-a-function-app/

因此,您可能有 2 个或更多不同的函数,部署到不同的 AppServices 或函数实例,通过 class 库共享相同的代码。 .NET C# Functions 支持预编译程序集,您可以在基于 Node.js 的 Functions

中使用 WebPack 执行类似操作