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 バッチ処理) を提供する。

実践的な知識は関連書籍でも得られる。

関連用語