本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用注解来编写 AWS Lambda 函数
在编写 Lambda 函数时,您有时需要编写大量的处理程序代码,并更新 AWS CloudFormation 模板以及执行其它任务。Lambda 注释是一个框架,有助于减轻 .NET 6 Lambda 函数的负担,从而让使用 C# 编写 Lambda 的体验更加自然。
如果要举例说明使用 Lambda 注释框架的好处,请考虑以下将两个数字相加的代码片段。
不使用 Lambda 注释
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" } } }; } }
使用 Lambda 注释
public class Functions { [LambdaFunction] [RestApi("/plus/{x}/{y}")] public int Plus(int x, int y) { return x + y; } }
如示例所示,Lambda 注释可以消除对某些 Boilerplate 代码的需求。
有关如何使用该框架以及更多信息,请参阅以下资源:
-
GitHub 自述
文件,其中包含有关 Lambda 注释 API 和属性的文档。 -
有关 Lambda 注释的博客文章
。 -
Amazon.Lambda.Annotations
NuGet 程序包。 -
GitHub 上的照片资产管理项目
。具体而言,请参阅项目自述文件 中的 PamApiAnnotations 文件夹和对 Lambda 注释的引用。