微软正式发布Azure Functions的第二个版本,这是一个事件驱动的、按需计算的Azure平台服务。与版本1相比,新版本的Azure Functions包含的多项特性使开发人员可以更轻松地构建可伸缩的无服务器应用程序。
2016年初,微软首次推出Azure Functions预览版,并在2016年11月中旬发布第一个正式版本。根据公告博文,在第二个版本中,最重要的变化是托管运行时,它现在可跨平台移植,并且更高效。此外,运行时甚至可以在容器或IoT Edg上运行Azure Functions服务。Azure Functions 2.0还可以在更多环境中运行,比如在本地Mac或Linux机器上运行,开发人员还可以使用Visual Studio、VS Code或VS for Mac等IDE编写函数。
Eduardo Laureano是Azure Functions的首席PM经理,他在一篇博文中写道:
Functions 2.0的性能得到了前所未有的提升,这其中部分是因为托管的改进、对更现代化的语言运行时的支持以及从包文件运行代码的能力。
借助Functions 2.0,开发人员可以使用多种语言编写代码,比如JavaScript(Node 8和Node 10)、C#和F#(.Net Core 2)和Java 8(预览支持)。此外,据Laureano介绍,非.NET语言可以利用一种新的语言工作者模型,这可以提高性能。工作者进程提供了更好的版本支持和迭代,并且是未来语言支持的使能者。
图片来源:https://azure.microsoft.com/en-us/blog/introducing-azure-functions-2-0/
对于Functions的第二个版本,除了核心HTTP和计时器外,所有绑定现在都是扩展。Azure Functions中的绑定将代码从数据源或目的地解耦,并将它们打包为扩展,微软进一步解耦了它们。正如Laureano在博客文章中所述,通过解耦扩展,微软使得绑定及其依赖项可以独立于核心运行时进行版本控制。开发人员将对他们的应用程序及其运行方式拥有更多的控制权,特别是在他们的应用程序所依赖的服务不断演化的情况下。
此外,Functions 2.0还包括如下特性:
- 一个针对Azure SignalR Service的新扩展;
- 扩展Application Insights集成;
- 新增部署中心特性(预览阶段),实现更可管理的源码控制。
图片来源:https://azure.microsoft.com/en-us/blog/introducing-azure-functions-2-0/
随着Functions 2.0的发布,微软Function产品团队进一步增强了服务,并将很快添加更多的托管选项和语言支持。该团队计划扩展Azure Functions的开发栈和托管选项,比如无服务器,比如Linux托管——现在注册,可以使用构建在Linux操作系统之上的Functions使用计划预览版。此外,该团队还在基于Functions 2.0运行时构建对Python 3.6的支持,该功能也是通过内部预览方式提供。