CLOVER🍀

That was when it all began.

Powertools for AWS Lambdaってなんだ?

これは、なにをしたくて書いたもの?

Powertools for AWS LambdaのPythonをちょっと扱ってみようかなと思ったのですが、その前にPowertools for AWS Lambda自体について
1度見ておこうかなと思いまして。

Powertools for AWS Lambda

Powertools for AWSGitHub organizationはこちらです。

Powertools for AWS · GitHub

この中にPowertools for AWS Lambdaのリポジトリーが含まれています。

Powertools for AWS LambdaはAWS Lambda向けのライブラリーで、以下のような機能をサポートしています。

  • トレーシング
  • 構造化ロギング
  • メトリクス
  • バッチ処理
  • パラメーター
  • べき等性
  • 大きなサイズのメッセージ
  • バリデーション
  • JSONユーティリティー
  • データマスキング

Simplifying serverless best practices with Lambda Powertools | AWS Open Source Blog

構造化ログに関しては、ランタイムによってはAWS Lambdaがサポートするようになっています。

AWS Lambda の高度なログ制御機能のご紹介 | Amazon Web Services ブログ

Lambda 関数の高度なログ記録コントロールの設定 - AWS Lambda

現時点でPython、TypeScript、Java、.NET向けのライブラリーがあり、各言語向けのもので実装されている機能が異なるので個別に
確認が必要ですね。

提供形態としては以下のパターンがあるようです。

  • 各言語向けのライブラリー(pip、npm、Apache Maven、NuGet)
  • Lambdaレイヤー
  • Serverless Application Repository(SAR)

各言語向けのWebサイトとGitHubリポジトリー。

Python

Homepage - Powertools for AWS Lambda (Python)

GitHub - aws-powertools/powertools-lambda-python: A developer toolkit to implement Serverless best practices and increase developer velocity.

TypeScript。

Homepage - Powertools for AWS Lambda (TypeScript)

GitHub - aws-powertools/powertools-lambda-typescript: Powertools is a developer toolkit to implement Serverless best practices and increase developer velocity.

Java

Homepage - Powertools for AWS Lambda (Java)

GitHub - aws-powertools/powertools-lambda-java: Powertools is a developer toolkit to implement Serverless best practices and increase developer velocity.

.NET。

Powertools for AWS Lambda (.NET) - Powertools for AWS Lambda (.NET)

GitHub - aws-powertools/powertools-lambda-dotnet: Powertools is a developer toolkit to implement Serverless best practices and increase developer velocity.

ちなみに、AWS CDKを使ってLambdaレイヤーを作成するためのカスタムコンストラクトもあります。

GitHub - aws-powertools/powertools-lambda-layer-cdk

ざっくりとした内容把握ですが、AWS Lambdaを使う時にはこちらに欲しい機能がすでに実装済みでないか確認した方がいいんでしょうね。