Lambda Powertools
Lambda 関数の構造化ログ、分散トレーシング、カスタムメトリクスを簡素化する AWS 公式ライブラリ
AWSサーバーレス
Lambda Powertools とは
Lambda Powertools は、AWS が公式に提供するオープンソースライブラリで、Lambda 関数の構造化ログ、分散トレーシング、カスタムメトリクスを最小限のコードで実装できる。TypeScript、Python、Java、.NET 版がある。
3 つの主要機能
1. Logger (構造化ログ)
Lambda のコンテキスト情報 (関数名、メモリサイズ、X-Ray トレース ID) が自動的に付与される。
2. Tracer (分散トレーシング)
AWS X-Ray と統合し、Lambda 関数の呼び出し、AWS SDK の呼び出し、HTTP リクエストを自動的にトレースする。サービスマップでリクエストの流れを可視化し、ボトルネックを特定できる。
3. Metrics (カスタムメトリクス)
CloudWatch Embedded Metrics Format (EMF) でカスタムメトリクスを出力する。putMetric API を呼び出すだけで、CloudWatch にメトリクスが送信される。PutMetricData API を直接呼ぶよりコストが低い。
SAM での設定
Globals:
Function:
Runtime: nodejs20.x
Environment:
Variables:
POWERTOOLS_SERVICE_NAME: order-service
POWERTOOLS_LOG_LEVEL: INFO
POWERTOOLS_METRICS_NAMESPACE: OrderService
Tracing: Active # X-Ray を有効化
Layers:
- !Sub arn:aws:lambda:${AWS::Region}:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:1
Middy ミドルウェアを使えば、ハンドラー関数にデコレーター的にログ、トレーシング、メトリクスを追加できる。
Powertools の機能
Powertools は Logger (構造化ログ)、Tracer (X-Ray トレース)、Metrics (カスタムメトリクス) の 3 つのコア機能に加え、Parameters (SSM/Secrets Manager からの値取得)、Idempotency (冪等性の確保)、Batch (SQS バッチ処理) を提供する。
実践的な知識は関連書籍でも得られる。