在最近的一篇博文中,微软宣布 Azure Functions 3.0 上线版本现已投入生产。该版本的新功能包括对.NET Core 3.1 和 Node 12 的支持。此外,由于 Azure Functions 3.0 高度向后兼容,因此,微软声称之前的 Azure Functions 版本应该能够在 3.0 版本运行时中运行,而无需更改代码。
虽然运行时已经为投入生产做好了准备,但是还有一些工具和性能优化即将推出。产品团队解释道:
虽然已经为投入生产做好了准备,并且大多数工具及性能优化即将推出,但是,在我们宣布 Functions 3.0 为新应用程序的默认版本之前,还有一些工具方面的改进工作要做。我们计划于 2020 年 1 月宣布 Functions 3.0 为新应用程序的默认版本。
微软已经发布了其正在跟踪的工具和性能差距,包括对 Visual Studio、Azure 接口和 Azure CLI 更好的支持。
尽管还有一些工具有待发布,但是,新版本为在 Azure Functions 中使用 .NET Core 的开发人员解决了一些问题。在该版本发布之前, Azure Functions 2.0 只支持 .NET Core 2.2 ,并且对 .NET Core 2.2 的支持也已经在 2019 年 12 月 23 日终止。在最近的一篇推文中,微软的 MVP 兼云架构师 Rick van den Bosh 解释说:
Function V3 GA 的最初计划于 2020 年一季度发布。由于可能在几个月后,将不会有受支持的 .NET Core 版本来运行 Azure Functions,因此,可能会造成一些问题。这样做不仅解决了这个问题,而且,Functions V3 将在 2020 年 1 月成为默认版本。
尽管 .NET Core 2.2 已经不再受到支持,但是,之前的 Azure Functions 版本将继续受到支持,微软解释道:
运行早期 Azure Functions 版本的用户将继续受到支持,目前,我们不会弃用 1.0 或 2.0 版本。运行 Azure Functions 1.0 或 2.0 版本的用户也将继续收到针对在 Azure 中运行的应用程序的安全更新和补丁,这些更新和补丁也将同时转移到 Azure Functions 运行时和底层 .NET 运行时。
根据语言运行时的不同,在迁移到 Azure Functions 3.0 的时候,尤其是在 Python 领域中,开发人员可以看到一些以调用开销形式改进的性能。Nuweba 的软件工程师 Adir Shemesh 解释说:
Python 函数会看到 Azure Functions 3.0 最大程度地减少了调用开销。使用 FaaStest 的行视图,我们可以看到,在 Azure Functions 2.0 中,调用开销随着并发调用次数的增长而增加。
总体而言,Shemesh 为 Azure Functions 3.0 感到兴奋并做了如下总结:
确实,Azure Functions 3.0 是非常令人兴奋的更新。它允许开发人员使用更新的函数运行时,并且带来了一些性能提升,但是,目前 Linux 上的 .NET 函数在调用开销方面似乎有所增加。
在升级到 Azure Functions 3.0 时遇到问题的开发人员,请在 Azure Functions 的 GitHub 存储库记录相关问题。
阅读原文:
Azure Functions 3.0 Released to Production, Support for .NET Core 3.1 and Node 12 Included