Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Uso de anotaciones para escribir funciones de AWS Lambda
Al escribir funciones Lambda, a veces es necesario escribir una gran cantidad de código de controlador y actualizar plantillas de AWS CloudFormation, entre otras tareas. Lambda Annotations es un marco que ayuda a aliviar estas cargas con las funciones Lambda de .NET 6, lo que hace que la experiencia de escribir Lambda resulte más natural en C#.
Considere los siguientes fragmentos de código, en los que se suman dos números, como ejemplo de las ventajas de utilizar el marco Lambda Annotations.
Sin Lambda Annotations
public class Functions { public APIGatewayProxyResponse LambdaMathPlus(APIGatewayProxyRequest request, ILambdaContext context) { if (!request.PathParameters.TryGetValue("x", out var xs)) { return new APIGatewayProxyResponse { StatusCode = (int)HttpStatusCode.BadRequest }; } if (!request.PathParameters.TryGetValue("y", out var ys)) { return new APIGatewayProxyResponse { StatusCode = (int)HttpStatusCode.BadRequest }; } var x = int.Parse(xs); var y = int.Parse(ys); return new APIGatewayProxyResponse { StatusCode = (int)HttpStatusCode.OK, Body = (x + y).ToString(), Headers = new Dictionary<string, string> { { "Content-Type", "text/plain" } } }; } }
Con Lambda Annotations
public class Functions { [LambdaFunction] [RestApi("/plus/{x}/{y}")] public int Plus(int x, int y) { return x + y; } }
Como se muestra en el ejemplo, Lambda Annotations permite prescindir de tener que usar código repetitivo en cierta medida.
Para saber cómo utilizar el marco, así como obtener información adicional, consulte los siguientes recursos:
-
README de GitHub
, para obtener documentación sobre las API y los atributos de las Lambda Annotations. -
La entrada de blog
de Lambda Annotations. -
El paquete NuGet
Amazon.Lambda.Annotations
. -
Proyecto PhotoAssetManagement
en GitHub. En concreto, consulte la carpeta PamApiAnnotations y las referencias a Lambda Annotations del archivo README del proyecto.