はじめに
皆さん、こんにちは。AWS ソリューションアーキテクトの福井です。
前回の第 1 回 では、AWS Lambda Powertools Python の概要とインストール方法、提供されているユーティリティーの一覧についてご紹介しました。第 2 回からは AWS Lambda Powertools Python で提供されている各種ユーティリティーの具体的な使い方についてご紹介します。今回は Core Utilities の中の Tracer についてご紹介します。なお、本シリーズでは、AWS Lambda Powertools Python 1.25.1 を対象としています。
builders.flash メールメンバー登録
Tracer (Core Utilities)
シリーズ第 2 回では、Core Utilities の Tracer について紹介します。Tracer を利用することで、AWS X-Ray SDK を利用するよりもより簡単にトレースの機能を利用できます。
Tracer は、AWS X-Ray Python SDK の薄いラッパーです。主な機能は以下の通りです。
コールドスタートをアノテーションとして、レスポンスまたは例外をメタデータとして自動的に捕捉
ローカル環境におけるテスト実行時など AWS Lambda 環境で実行していないときは自動的に無効化
トレース非同期メソッド、ジェネレータ、コンテキストマネージャをサポート
AWS X-Ray による自動パッチサポートモジュール
利用方法
AWS CLI で AWS X-Ray にトレースデータの送信を許可する場合の例は以下の通りです。
注意 : トレースモードはバージョン固有コンフィグレーションの一部なので Lambda 関数のバージョン発行後の変更はできません。
aws lambda update-function-configuration --function-name my-function --tracing-config Mode=Active
Lambda ハンドラーの実装
アノテーションとメタデータ
同期型関数
その他の Tips
Tracer は AWS Lambda の実行環境以外では、自動的に無効化されます。そのためデバッグなどの理由でローカル実行する際に、コードを変更する必要はありません。
Tips
トレースを分析したり、特定のビューを作成したり、Trace Group の機能を利用してメトリクスを集計するためにアノテーションを利用しましょう。
メタデータのデータをより容易にグループ化するには名前空間を利用しましょう。
アノテーションやメタデータはカレントのサブセグメントに追加されます。異なるサブセグメントに追加したい場合は、X-Ray SDK の context manager の機能を利用します。
まとめ
今回は、AWS Lambda Powertools Python の Tracer について紹介しました。Tracer を利用することで AWS X-Ray を利用したトレース情報にアノテーションやメタデータを簡単に追加できることがお分かり頂けたと思います。皆様の Lambda 関数に AWS Lambda Powertools Pythonを 組み込んで、ご活用ください。次回もお楽しみに。
筆者プロフィール
福井 厚
アマゾン ウェブ サービス ジャパン合同会社
シニアソリューションアーキテクト サーバーレススペシャリスト
2015 年からアマゾンウェブサービスジャパンでソリューションアーキテクトとして活動。サーバーレススペシャリストとして日々モダンアプリケーション開発とサーバーレスの活用の技術支援を行なっています。
