AWS X-Ray
開発者ガイド

AWS Lambda および AWS X-Ray

AWS X-Ray を使用して AWS Lambda をトレースすることができます。Lambda は X-Ray デーモンを実行し、関数の呼び出しと実行に関する詳細とともにセグメントを記録します。さらに計測するには、X-Ray SDK を関数にバンドルして送信呼び出しを記録し、注釈とメタデータを追加できます。

Lambda 関数が他の計測サービスより呼び出されると、Lambda は、追加の設定なしで、すでにサンプルを作成したリクエストをトレースします。アップストリームサービスは、計測されたウェブアプリケーションや別の Lambda 関数とすることができます。サービスでは、計測された AWS SDK クライアントで直接、または計測された HTTP クライアントで API Gateway API を呼び出して、関数を呼び出すことができます。

Lambda 関数がスケジュールで実行される場合や、計測されていないサービスによって呼び出される場合は、アクティブトレースで呼び出しをサンプルおよび記録するように Lambda を設定できます。

AWS Lambda 関数で X-Ray 統合を設定するには

  1. AWS Lambda コンソールを開きます。

  2. 関数を選択します。

  3. [Configuration] を選択します。

  4. [デバッグとエラー処理] で、[アクティブトレースを有効にします] を選択します。

対応する X-Ray SDK, Lambda があるランタイムでも、X-Ray デーモンが実行されます。

Lambda での X-Ray SDK

  • X-Ray SDK for Go – Go 1.7 以降のランタイム

  • X-Ray SDK for Java – Java 8 ランタイム

  • X-Ray SDK for Node.js – Node.js 4.3 以降のランタイム

  • X-Ray SDK for Python – Python 2.7、Python 3.6 以降のランタイム

  • X-Ray SDK for .NET – .NET Core 2.0 以降のランタイム

Lambda で X-Ray SDK を使用するには、新しいバージョンを作成するたびに、関数コードでバンドルします。Lambda 関数は、他のサービスで実行されているアプリケーションを計測する場合と同じメソッドを使用して計測することができます。主な違いは、SDK を使用して、受信リクエストの計測、サンプリングの決定、セグメントの作成を行わないことです。

Lambda 関数とウェブアプリケーションの計測のもう 1 つの違いは、Lambda が作成して X-Ray に送信するセグメントは、関数コードで変更できないことです。サブセグメントを作成し、そこに注釈とメタデータを記録できますが、親セグメントに注釈とメタデータを追加することはできません。

詳細については、AWS Lambda 開発者ガイドの「AWS X-Ray の使用」を参照してください。