本地 Azure Functions 是否适合生产?

Are on-premise Azure Functions suitable for production?

我们正在为我们的客户采用基于 Azure Functions 的架构,其中一些客户要求 AF 运行 仅在本地。

Microsoft Azure Functions docs 中,他们指的是 运行 本地 Azure Functions 仅用于开发目的。

据我了解,他们只是列出了最常见的用例 运行在本地部署一项从云计算中获得优势的服务;这不应排除内部部署 运行 时间的生产用途。我不会在任何地方阅读以避免在生产中使用它们。

因此问题来了:我们应该避免在生产中使用本地 Azure Functions 吗?

提前致谢

您可能 运行 遇到的主要问题是支持 - 虽然主机是开源的并且绝对可以 运行 本地,但它可能尚未在特定环境中进行测试您的客户正在 运行ning,可能很难获得更新来解决产品团队优先考虑的问题。

要考虑的替代方法可能是在 Functions 主机之外使用 Webjobs SDK。我过去曾这样做过,我需要在混合场景中部署代码,因为 Webjobs 本质上是控制台应用程序,所以我能够 运行 它们作为简单的 Windows 服务。 Functions 非常依赖 Webjobs SDK,将它们转换为 Functions 应用程序需要最少的代码更改。

我的项目结构基本上是这样的(我在 .NET 中工作):

  • 商业Logic/Models/Etc。
  • 函数包装器
  • Web 作业包装器