我很难理解当前(2019 年 1 月)与 Azure Functions
相关的当前可用选项和组件集。我的问题的一部分也可能是看似令人困惑的术语和/或版本控制以及看起来非常陈旧的文档(此处列出的许多页面 ( https://learn.microsoft.com/en-us/azure/app-service/overview-diagnostics ) 的日期仍然是 2017 年的。
据我了解
- Azure Functions 的原始版本 1 允许您运行针对
.NET Full Framework
的代码片段 - 有较新的 Azure Functions 版本 2,它允许您运行针对
.NET Standard/Core
的代码片段。这是去年的测试版 (??)、预览版 (??),并于 2018 年 9 月/10 月左右进入GA? - 所有新功能都将针对函数运行时版本 2 (??)
- 有一个 UI Portal (??)( https://learn.microsoft.com/en-us/azure/azure-functions/functions-runtime-install 和 https://aka.ms/azafrv2 )标记为 Preview 2,似乎从 2017 年 11 月开始。有趣的是,它确实提供了在本地运行 v1 和 v2 Azure Functions 的选项。
- 似乎无法找到此门户的更新版本。这篇文章 ( https://github.com/MicrosoftDocs/azure-docs/issues/15820#issuecomment-427089585 ) 指出没有更新门户的计划。这是否意味着微软将放弃在本地运行 Azure Functions?
- 我猜测门户网站中捆绑的运行时是 2017 年的,并且没有运行最新的运行时?
- 不确定
Azure Webjobs SDK
、Azure Functions Host
、WebJobs Script
、Azure Core Tools
之间的关系是什么> 和Azure Functions 运行时
。
最终,我希望在本地运行 Azure Functions,并且需要支持 v1 和 v2。虽然我们要创建的绝大多数功能都将针对较新的 v2,但我们有两三个 .NET 库尚未从完整框架中移植,并且由于它们是第三方,因此我们无法控制时间范围。)
理想情况下,我们希望为开发人员提供一个本地门户,以便从 Visual Studio 上传函数,甚至通过浏览器创建函数。
更好的方法是将这些功能容器化并在本地 Azure Service Fabric 中运行它们。 (我意识到这是高级的,可能超出了本文的范围。)
最佳答案
将你的问题总结为 3 点
运行时差异(前三项)
您的理解是完全正确的,V1 针对 Full NetFramework,V2 针对 .NET Core,该版本已于 2018 年 9 月 24 日宣布正式发布。是的,所有新功能都将仅针对 V2。
这些术语之间的关系(第 5 项)。
Azure Webjobs SDK是一个框架,可简化编写在 Azure 中运行的后台处理代码的任务。在 .NET 函数中,它(以及 Webjobs 扩展)由
Microsoft.NET.Sdk.Functions
引用。WebJobs.Script = Azure Functions 主机 = Azure Functions 运行时,我们的函数在其中运行。它基于 Azure WebJobs SDK 构建,并为其启用了轻量级脚本模型,脚本库执行将我们的函数脚本插入 Azure WebJobs SDK 运行时所需的工作。
Azure Functions Core Tools(CLI)是与 Azure Functions Runtime 集成的命令行工具。我们本地的开发(例如运行、调试)就依赖于这个工具。
Azure Functions Runtime 预览 2(第 4 项)
它提供了类似于 Azure Function 门户的 UI,并使用 obsolete docker hub image 中非常旧的 Function 运行时。 。正如您在 thread 中找到的那样,没有更新计划,不知道会不会废弃。
到目前为止,我们无法获得可用的本地门户,只能转向 CLI 或容器进行本地运行。请注意,v1 函数没有图像。不熟悉 Azure Service Fabric,因此没有更多建议。
关于azure - 需要澄清 Azure Functions 生态系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54317385/