Azure 函数结构

2024-01-28

我正在尝试弄清楚我们应该如何构建 Azure 函数。

我喜欢构建响应事件的无服务器、紧凑、单一功能应用程序的想法。

以下是我遇到的问题:

  1. 我在 .NET Standard 2 中内置了很好的类库,可以处理我的所有“后端需求”,即使用 Cosmos Db、Azure 表存储、Azure SQL、Redis、Azure 存储处理 CRUD 操作。无论我做什么,我都无法将这些类库集成到 Azure Functions 项目中。更多详细信息如下。
  2. 此外,事实证明,在 Azure Functions 项目中进行依赖项注入是一项艰巨的任务——尤其是对于上面提到的我的类库。

此时,我看到的唯一选项是将代码“复制并粘贴”到新的 Azure Functions 项目中并在没有任何 DI 的情况下使用它。

这似乎违背了“最佳实践”。那么,除了创建整体代码或等到 Azure Functions 支持 .NET Core 和 DI 之外,还有什么解决方案呢?

我认为我可以使用针对 .NET Framework 的常规 Azure Functions 项目中的 .NET Standard 类库。毕竟,.NET Standard 的理念是“标准化”事物。我在这里开了几篇关于SO的帖子。我提供链接,以便您可以查看我遇到的问题:

在面向 .NET Framework 4.7 的 WebJob 中使用 .NET Core 2.0 库 https://stackoverflow.com/questions/45950157/using-net-core-2-0-libraries-in-webjob-targeting-net-framework-4-7

使用 .NET Core 和 Ninject 的 WebJobs 中没有无参数构造函数错误 https://stackoverflow.com/questions/46017931/no-parameterless-constructor-error-in-webjobs-with-net-core-and-ninject

附:我之前的帖子提到的是 WebJobs。这是 B 计划方法,因为在支持 .NET Core 和 DI 等方面,WebJobs 似乎比 Azure Functions 领先半步。最终,我想构建一些可以使用在 .NET Standard 2 中构建的类库的 Azure Functions。

另外,我之前的帖子提到我的类库面向 .NET Core 2.0。从那时起,我将它们转换为 .NET Standard 2,这实际上并没有花费太多时间。我这样做是为了真正符合 .NET Standard 2。


一个问题是 Visual Studio 的 Functions Core 工具版本已过时。在解决此问题之前,您可以通过以下方式解决:

  • 通过运行 npm 安装最新版本npm install -g azure-functions-core-tools
  • 在 VS 的 Function App 中,转到属性
  • 转到“调试”,然后单击“配置文件”下的“新建...”
  • 将新的配置文件命名为 FunctionsNpm
  • 将可执行文件设置为(替换[YourUserName]): C:\Users\[YourUserName]\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\func.exe
  • 将参数设置为host start
  • 将工作目录设置为$(TargetDir)
  • In toolbar, look for the green triangle icon to change your current Profile to the one you just created: enter image description here

现在,当您从 VS 运行时,您将使用 npm 工具,而不是 VS 包附带的旧工具。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Azure 函数结构 的相关文章

随机推荐