本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用註釋來寫AWS Lambda功能
撰寫 Lambda 函數時,有時需要撰寫大量處理常式程式碼並進行更新AWS CloudFormation範本,以及其他工作。Lambda 註解是一個架構,可協助減輕 .NET 6 Lambda 函數的這些負擔,進而讓撰寫 Lambda 的體驗在 C# 中感覺更自然。
作為使用 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" } } }; } }
使用拉姆達註釋
public class Functions { [LambdaFunction] [RestApi("/plus/{x}/{y}")] public int Plus(int x, int y) { return x + y; } }
如示例所示,Lambda 註釋可以消除對某些鍋爐板代碼的需求。
如需如何使用架構的詳細資訊以及其他資訊,請參閱下列資源:
-
該GitHub自述
以取得有關 Lambda 註解的 API 和屬性的文件。 -
該部落格文章
對於拉姆達註釋。 -
該
Amazon.Lambda.Annotations
NuGet包裝。 -
該相片資產管理專案
上GitHub。具體來說,請參閱PamApiAnnotations 專案中 Lambda 註解的資料夾和參考自述 。