近日,AWS Lambda 宣布增加了对 .NET 6 的支持,用户可以使用 .NET 6 运行时来构建 AWS Lambda 函数。
根据公告,新的托管运行时支持 x86 和 Arm/Graviton2 处理器。带有AWS Toolkit 的 Visual Studio 2022、带有Amazon.Lambda.Tools全局工具的 .NET CLI 以及 AWS 无服务器应用程序模型 CLI (AWS SAM CLI ) 都可以使用.NET 6 和 AWS Lambda。
.NET 6 为 .NET 开发人员提供了许多新功能,包括对C# 10和F# 6的支持,而 AWS Lambda 也针对 .NET 6 做了一些针对性改进。具体包括:
对日志记录进行改进。.NET Lambda 函数的日志记录针对 .NET 6 进行改进,提供了更好的可追溯性以及对所记录内容的可控性。
使用源生成器进行 JSON 序列化。.NET 6 更新了原生 JSON 库 System.Text.Json,从而允许 JSON 解析而不需要反射 API。当面向 .NET 6 支持时,开发者可以利用 System.Text.Json 的源代码生成器支持来提高冷启动性能,这主要通过处理 Lambda 事件的序列化和对 .NET 类型的响应的 Amazon.Lambda.Serialization.SystemTextJson 包完成。
支持顶级语句。新的 .NET 6 Lambda 运行时,支持使用 C# 9 的顶级语句编写 Lambda 函数。顶级语句允许开发者删除 .NET 项目的大部分初始样板代码。
支持 ASP.NET Core Minimal APIs。从第一个 .NET Lambda 运行时开始,开发者可以使用 Amazon.Lambda.AspNetCoreServer NuGet 包将 ASP.NET Core 应用程序作为 Lambda 函数运行。而.NET 6 引入了一种被称为“Minimal APIs”的新 ASP.NET Core 应用程序编写方式, C# 9 的顶级语句简化了 ASP.NET Core 应用程序的初始化,开发者可以在单个文件中定义整个 ASP.NET Core 应用程序。
此外,对于 .NET 6,托管运行时现在使用来自aws/aws-lambda-dotnet存储库的开源Lambda 运行时客户端。
评论