このページでは、開発中に 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 サーバレストレーサ API」を参照してください。
次のステップ
サーバーレス トレーサ インストゥルメンテーションの確認 の準備ができました。
「Node.js サーバレストレーサとエンドユーザモニタリングの統合」を行うことや、「Node.js サーバレストレーサ API」を使用することもできます。
これらのマニュアルで使用されている Amazon Web サービス、AWS ロゴ、AWS、およびその他の AWS マークは、米国およびその他の国における Amazon.com, Inc. またはその関連会社の商標です。