AWS Lambda および AWS X-Ray - 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 を呼び出すことによって呼び出すことができます。

AWS X-Ray は、 AWS Lambda および Amazon SQS を使用したイベント駆動型アプリケーションのトレースをサポートします。 CloudWatch コンソールを使用して、Amazon SQS でキューに入れられ、ダウンストリーム Lambda 関数によって処理される各リクエストの接続されたビューを表示します。アップストリームメッセージプロデューサーからのトレースは、ダウンストリーム Lambda コンシューマーノードからのトレースに自動的にリンクされ、アプリケーションの end-to-end ビューが作成されます。詳細については、「イベント駆動型アプリケーションのトレース」を参照してください。

注記

ダウンストリーム Lambda 関数でトレースを有効にしている場合は、ダウンストリーム関数がトレースを生成するために、ダウンストリーム関数を呼び出すルート Lambda 関数でもトレースを有効にする必要があります。

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

AWS Lambda 関数で X-Ray 統合を設定するには
  1. AWS Lambda コンソールを開きます。

  2. 左のナビゲーションペインから [関数] を選択します。

  3. 関数を選択します。

  4. 設定 タブで、追加のモニタリングツールカードまでスクロールダウンします。このカードは、左側のナビゲーションペインでモニタリングツールとオペレーションツールを選択して検索することもできます。

  5. [Edit] (編集) を選択します。

  6. [AWS X-Ray] で、[アクティブトレース] を有効にします。

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

Lambda の X-Ray SDK
  • Go 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 開発者ガイドの「AWS Lambda X-Ray を使用する」を参照してください。