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は Amazon SQSAWS Lambda を使用したイベント駆動型アプリケーションのトレースをサポートします。 CloudWatch コンソールを使用して、Amazon SQS でキューに入れられ、ダウンストリームの Lambda 関数によって処理される各リクエストの接続ビューを確認できます。上流のメッセージプロデューサーからのトレースは、下流の Lambda コンシューマーノードからのトレースに自動的にリンクされ、 end-to-end アプリケーションのビューが作成されます。詳細については、イベント駆動型アプリケーションのトレースを参照してください

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

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

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

  3. 関数を選択します。

  4. [設定] タブで、モニタリングツールカードが表示されるまで下へスクロールし、[編集] を選択します。

  5. [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 を使用する」を参照してください。