« Lambda » : différence entre les versions
De Banane Atomic
Aller à la navigationAller à la recherche
Aucun résumé des modifications |
|||
Ligne 2 : | Ligne 2 : | ||
= Links = | = Links = | ||
* [https://coderjony.com/blogs/running-net-8-lambda-functions-on-aws-using-custom-runtime-and-lambda-internals-for-net-developers Running .NET 8 Lambda Functions on AWS using Custom Runtime & Lambda Internals] | * [https://coderjony.com/blogs/running-net-8-lambda-functions-on-aws-using-custom-runtime-and-lambda-internals-for-net-developers Running .NET 8 Lambda Functions on AWS using Custom Runtime & Lambda Internals] | ||
= Description = | |||
Serverless service allowing to run code without having to worry about underlying hardware. | |||
= .NET 8 = | = .NET 8 = |
Version du 12 avril 2024 à 08:48
Links
Description
Serverless service allowing to run code without having to worry about underlying hardware.
.NET 8
scenario | description |
---|---|
Native AOT | |
Custom Runtime Function | to use .NET 8 |
Container Image | lambda function package as a container image |
Debug locally
On VS, if the extension AWS Toolkit is installed you have the AWS .NET Mock Lambda Test Tool available.
A debug configuration is created for you lambda.
Properties\launchSettings.json |
{ "profiles": { "Mock Lambda Test Tool": { "commandName": "Executable", "commandLineArgs": "--port 5050", "executablePath": "<home-directory>\\.dotnet\\tools\\dotnet-lambda-test-tool-6.0.exe", "workingDirectory": ".\\bin\\Debug\\net6.0" } } } |
Deployment
Lambda function handler in C#
For class libraries: ASSEMBLY::TYPE::METHOD
Call a lambda from code
var jsonSerializerOptions = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase, Converters = { new JsonStringEnumConverter() } }; var amazonLambdaClient = new AmazonLambdaClient(); var request = new InvokeRequest { FunctionName = functionName, Payload = JsonSerializer.Serialize(myObject, jsonSerializerOptions), LogType = LogType.Tail }; var response = await this.amazonLambdaClient.InvokeAsync(request); if(response.HttpStatusCode == System.Net.HttpStatusCode.OK) { var payload = Encoding.ASCII.GetString(response.Payload.ToArray()); // to debug only var result = JsonSerializer.Deserialize<AwsJobResult<LambdaJob>>(response.Payload, jsonSerializerOptions); } |