Les fonctions AWS Lambda peuvent désormais être élaborées avec .NET 6 de Microsoft, la dernière version importante de la plateforme de développement. L’introduction du runtime .NET 6 pour l’offre serverless offre des fonctionnalités supplémentaires qui améliorent les performances et les diagnostics. S'y ajoute le support d’autres modèles de codage.

Le runtime Lambda .NET 6 a été présenté par AWS le 24 février dernier. Parmi les fonctionnalités activées figure une amélioration de la gestion des logs et de leur contrôle, ainsi que de la traçabilité. Par ailleurs, le runtime est capable d’ajouter l’identifiant de la requête Lambda aux logs, comme pour les autres moteurs Lambda. De plus, plusieurs API de log sont disponibles comme LogCritical, LogError et LogTrace. Les développeurs peuvent toujours utiliser le style de journalisation des précédents moteurs d'exécution gérés par .NET s'ils le préfèrent.

Support de C# 9

Pour l’écriture de fonctions Lambda, le runtime s’appuie sur des instructions en C# 9. Avec cette approche, les développeurs peuvent supprimer une grande partie du code de base initial d'un projet .NET. Microsoft. En effet, .NET 6 a introduit un nouveau style d'écriture des applications ASP.NET Core, appelé Minimal APIs, qui tire parti des instructions en C# 9 pour simplifier l'initialisation d'une application. Les développeurs peuvent définir une application entière dans un seul fichier. Microsoft .NET 6 a également introduit les langages C# 10 et F# 6.

Pour migrer les fonctions Lambda existantes vers .NET 6, les développeurs peuvent procéder comme suit :

- Ouvrir le fichier csproj ou fsproj. Définir l'élément TargetFramework sur net6.0.

- S'il existe, ouvrir le fichier aws-lambda-tools-defaults.json.

- Définir le champ function-runtime sur dotnet6.

- Définir le champ framework sur net6.0. Si vous supprimez le champ, la valeur est déduite du fichier de projet.

- S'il existe, ouvrir le fichier serverless.template. Pour toute ressource AWS::Lambda::Function ou AWS::Serverless::Function, définir la propriété Runtime sur dotnet6.

- Mettre à jour toutes les références des paquets Amazon.Lambda.* NuGet avec les dernières versions.

Avec .NET et AWS Lambda, les développeurs peuvent utiliser l'outil de leur choix, notamment l'IDE Visual Studio 2022 de Microsoft, avec AWS Toolkit for Visual Studio, le .NET CLI avec Amazon Lambda Tools et le AWS Serverless Application Model CLI (AWS SAM CLI). Enfin à noter que le runtime Lambda .NET 6 prend en charge les processeurs x86 et Arm/Graviton.