このページでは、開発中に AWS Lambda 関数を使用して Node.js サーバーレストレーサを使用する方法について説明します。推奨される方法は、AppDynamics AWS Lambda Extension を使用することです。「AppDynamics AWS Lambda Extension を使用して、実行時にサーバレス APM をインストゥルメントする」を参照してください。
始める前に
AWS Lambda 向けサーバーレス APM に登録し、環境変数を設定すると、インストゥルメンテーションを開始できます。セットアップが次の要件を満たしていることを確認します。
- 既存の AWS Lambda 関数が Node.js バージョン 12.x、14.x、16.x、および 18.x で作成されている
- AWS Lambda 向けアクティブサーバーレス APM のサブスクリプション
- AppDynamics SaaS コントローラ 4.5.11 以降
このマニュアルには、Amazon Web Services(AWS)のマニュアルへのリンクが記載されています。Amazon は自身のマニュアルを管理しているため、AppDynamics は Amazon のマニュアルの精度については一切保証しません。
ES6 の開発時に npm
を使用した Node.js サーバーレストレーサのインストール
ES6 ラムダをインストゥルメント化するために、次の手順を使用して、Node.js サーバーレストレーサをインストールすることができます。
次のコマンドを実行して、トレーサをインポートします。
import tracer from "appdynamics-lambda-tracer";
tracer.init();
JS
アプリケーションにトレーサを追加するには、Lambda handler
関数が含まれているアプリケーションコードのプライマリファイルに require
ステートメントを追加します。
const tracer = require('appdynamics-lambda-tracer');
JS
Node.js サーバーレストレーサを使用した関数のインストゥルメント化次のコードスニペットは、トレーサを使用してサーバーレス関数をインストゥルメント化する方法を示しています。
export const handler = tracer.functionWrapper(async (event) => {
// YOUR CODE HERE
return "Hello World";
});
JS
CommonJS の開発時に npm
を使用した Node.js サーバーレストレーサのインストール
CommonJS ラムダをインストゥルメント化するには、AWS Lambda Extension を推奨します。次の手順を使用して、Node.js サーバーレストレーサをインストールすることもできます。
- Node.js サーバレストレーサのダウンロード
- Requireステートメントの追加
- Node.js サーバレストレーサを使用した関数のインストゥルメント化
Node.js サーバレストレーサのダウンロード
トレーサをインストールするには、package.json
ファイルが存在するディレクトリに移動します。次の npm
コマンドを実行します。
npm install appdynamics-lambda-tracer --save
JS
コマンドは、トレーサの依存関係を node_modules/
フォルダにダウンロードします。
Requireステートメントの追加
アプリケーションにトレーサを追加するには、AWS Lambda handler
関数が含まれているアプリケーションコードのプライマリファイルに require
ステートメントを追加します。
const tracer = require('appdynamics-lambda-tracer');
JS
他の require
ステートメントの前にトレーサの require
ステートメントを追加することを忘れないでください。
Node.js サーバレストレーサを使用した関数のインストゥルメント化
tracer.init
メソッドを呼び出して、require
ステートメント内の Node.js サーバレストレーサを初期化します。
インストゥルメンテーションを完了するには、コードの最後の行として tracer.mainModule(module)
を呼び出します。
次のコードスニペットは、トレーサを使用してサーバレス関数をインストゥルメント化する方法を示しています。
const tracer = require('appdynamics-lambda-tracer');
//Initialize the tracer
tracer.init();
// Your AWS Lambda handler function code here, for example:
exports.handler = async (event) => {
// TODO implement
const response = {
statusCode: 200,
body: JSON.stringify('Hello from Lambda!'),
};
return response;
};
//Complete the instrumentation
tracer.mainModule(module);
JS
デフォルトでは、Node.js サーバレストレーサは、HTTP または AWS Lambda 間のコールを介して渡された終了コールを自動的に検出します。関数がこれらのプロトコルを使用しない場合は、終了コールを作成する必要があります。「Node.js Serverless Tracer API」を参照してください。
次のステップ
Verify the Serverless Tracer Instrumentation の準備ができました。
「Integrate the Node.js Serverless Tracer with End User Monitoring」を行うことや、「Node.js Serverless Tracer API」を使用することもできます。
これらのマニュアルで使用されている Amazon Web サービス、AWS ロゴ、AWS、およびその他の AWS マークは、米国およびその他の国における Amazon.com, Inc. またはその関連会社の商標です。