

 AWS SDK for .NET V3 がメンテナンスモードになりました。

[AWS SDK for .NET V4](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/welcome.html) に移行することをお勧めします。移行方法の詳細と情報については、[メンテナンスモードのお知らせ](https://aws.amazon.com/blogs/developer/aws-sdk-for-net-v3-maintenance-mode-announcement/)を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# アノテーションを使用してAWS Lambda関数を記述する
<a name="aws-lambda-annotations"></a>

Lambda 関数を作成する場合、大量のハンドラーコードの記述やAWS CloudFormationテンプレートの更新などのタスクが必要になることがあります。Lambda アノテーションは、.NET 6 Lambda 関数にかかるこうした負担を軽減するためのフレームワークです。これにより、C\$1 で Lambda をより自然に記述できるようになります。

Lambda Annotations フレームワークを使用する利点の例として、2 つの数値を加算する以下のコードスニペットを考えてみましょう。

**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" } }
        };
    } 
}
```

**Lambda Annotations あり**

```
public class Functions
{
    [LambdaFunction]
    [RestApi("/plus/{x}/{y}")]
    public int Plus(int x, int y)
    {
        return x + y;
    }
}
```

例に示されているように、Lambda Annotations を使用すると特定のボイラープレートコードが不要になります。

フレームワークの使用方法の詳細については、次のリソースを参照してください。
+ Lambda アノテーションのAPIと属性に関するドキュメントについては、[GitHub のREADME](https://github.com/aws/aws-lambda-dotnet/blob/master/Libraries/src/Amazon.Lambda.Annotations/README.md)を参照してください。
+ Lambda Annotations の[ブログ投稿](https://aws.amazon.com/blogs/developer/net-lambda-annotations-framework/)。
+ [https://www.nuget.org/packages/Amazon.Lambda.Annotations](https://www.nuget.org/packages/Amazon.Lambda.Annotations) NuGet パッケージ。
+ GitHubの [写真アセット管理プロジェクト](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3/cross-service/PhotoAssetManager)。具体的には、[PamapiAnnotations](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3/cross-service/PhotoAssetManager/PamApiAnnotations) フォルダーとプロジェクト [README](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/dotnetv3/cross-service/PhotoAssetManager/README.md) の Lambda アノテーションへのリファレンスを参照してください。