Download PDF
Download page Node.js サーバレストレーサ.
Node.js サーバレストレーサ
このページでは、開発中に AWS Lambda 関数を使用して Node.js サーバーレストレーサを使用する方法について説明します。推奨される方法は、Splunk AppDynamics AWS Lambda Extension を使用することです。「Cisco AppDynamics AWS Lambda Extension を使用して、実行時にサーバーレス APM をインストゥルメントする」を参照してください。
始める前に
AWS Lambda 向けサーバーレス APM に登録し、環境変数を設定すると、インストゥルメンテーションを開始できます。セットアップが次の要件を満たしていることを確認します。
- 既存の AWS Lambda 関数が Node.js バージョン 16.x、18.x、および 20.x で作成されている
- AWS Lambda 向けアクティブサーバーレス APM のサブスクリプション
- Splunk AppDynamics SaaS コントローラ 4.5.11 以降
このページには、Amazon Web Services(AWS)のマニュアルへのリンクが含まれています。Amazon で自身のマニュアルを管理しているため、Splunk AppDynamics では Amazon のマニュアルの精度については一切保証しません。
開発時に npm を使用して、Node.js サーバーレストレーサをインストールする
手動インストゥルメンテーションまたは自動インストゥルメンテーションを使用して、ES6 ラムダをインストゥルメント化できます。
手動インストゥルメンテーション
選択した Java Script モジュールに基づいて、次の手順を実行します。
ES6 ラムダをインストゥルメント化するために、次の手順を使用して、Node.js サーバーレストレーサをインストールすることができます。
次のコマンドを実行して、ES6 の開発時に
npm
を使用して Node.js サーバーレストレーサをインストールします。npm install appdynamics-lambda-tracer --save
JS次のコマンドを実行して、トレーサをインポートします。
import tracer from "appdynamics-lambda-tracer"; tracer.init();
JSNode.js サーバーレストレーサを使用した関数のインストゥルメント化次のコードスニペットは、トレーサを使用してサーバーレス関数をインストゥルメント化する方法を示しています。
export const handler = tracer.functionWrapper(async (event) => { // YOUR CODE HERE return "Hello World"; });
JS
CommonJS ラムダをインストゥルメント化するには、AWS Lambda Extension を推奨します。次の手順を使用して、Node.js サーバーレストレーサをインストールすることもできます。
トレーサをインストールするには、
package.json
ファイルが存在するディレクトリに移動します。次のnpm
コマンドを実行します。npm install appdynamics-lambda-tracer --save
JSコマンドは、トレーサの依存関係を
node_modules/
フォルダにダウンロードします。tracer.init
メソッドを呼び出して、require ステートメント内の Node.js サーバーレストレーサを初期化します。tracer = require('appdynamics-lambda-tracer'); //Initialize the tracer tracer.init();
JSインストゥルメンテーションを完了するには、コードの最後の行として
tracer.mainModule(module)
を呼び出します。次のコードスニペットは、トレーサを使用してサーバレス関数をインストゥルメント化する方法を示しています。// 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
TypeScript ラムダをインストゥルメント化するために、次の手順を使用して、Node.js サーバーレストレーサをインストールすることができます。
次のコマンドを実行して、開発時に
npm
を使用して Node.js サーバーレストレーサをインストールします。npm install appdynamics-lambda-tracer -–save npm install -D @types/aws-lambda esbuild
JS次のコマンドを実行して、トレーサをインポートします。
import tracer from "appdynamics-lambda-tracer"; tracer.init();
JSNode.js サーバーレストレーサを使用した関数のインストゥルメント化次のコードスニペットは、トレーサを使用してサーバーレス関数をインストゥルメント化する方法を示しています。
export const handler = tracer.functionWrapper ( async (event: APIGatewayEvent, context: Context): Promise<APIGatewayProxyResult> => { return { statusCode: 200, body: JSON.stringify({ message: 'hello world', }), }; });
JS
自動インストゥルメンテーション
自動インストゥルメンテーションでは、次の環境変数を設定する必要があります。
APPDYNAMICS_IS_ESM_ENABLE
:この変数の値は、使用している Java Script モジュールによって異なります。ESM モジュールを使用している場合は、変数をtrue
に設定します。ただし、ESM モジュールを使用していない場合は、変数をfalse
に設定します。APPDYNAMICS_APPLICATION_LAMBDA_HANDLER
:ラムダを実行するには、この変数を定義する必要があります。この変数でラムダのハンドラ関数を指定します。
AWS_LAMBDA_EXEC_WRAPPER
環境変数を削除してください。
インストゥルメンテーションを完了するには、選択した Java Script モジュールに基づいて次の手順を実行します。
[Layers] セクションで、Splunk AppDynamicsレイヤを追加します。次に示すように、名前
appdynamics-lambda-extension
と [Version ARN] 値を指定します。arn:aws:lambda:us-west-<###>:layer:appdynamics-lambda-nodejs-<###>
JS[Runtime settings] セクションで、Lambda ハンドラをSplunk AppDynamics特定のハンドラ
appdynamics-lambda-nodejs-tracer.handler
に更新します。appdynamics-lambda-nodejs-tracer.handler
JS[Configuration] セクションで、次の環境変数を他のSplunk AppDynamics変数に追加します。
APPDYNAMICS_APPLICATION_LAMBDA_HANDLER
= Lambda ハンドラAPPDYNAMICS_IS_ESM_ENABLE
=true
[Layers] セクションで、Splunk AppDynamicsレイヤを追加します。次に示すように、名前
appdynamics-lambda-extension
と [Version ARN] 値を指定します。arn:aws:lambda:us-west-<###>:layer:appdynamics-lambda-nodejs-<###>
JS[Runtime settings] セクションで、Lambda ハンドラをSplunk AppDynamics特定のハンドラ
appdynamics-lambda-nodejs-tracer.handler
に更新します。appdynamics-lambda-nodejs-tracer.handler
JS[Configuration] セクションで、次の環境変数を他のSplunk AppDynamics変数に追加します。
APPDYNAMICS_APPLICATION_LAMBDA_HANDLER
= Lambda ハンドラAPPDYNAMICS_IS_ESM_ENABLE
=false
[Layers] セクションで、Splunk AppDynamicsレイヤを追加します。次に示すように、名前
appdynamics-lambda-extension
と [Version ARN] 値を指定します。arn:aws:lambda:us-west-<###>:layer:appdynamics-lambda-nodejs-<###>
JS[Runtime settings] セクションで、Lambda ハンドラをSplunk AppDynamics特定のハンドラ
appdynamics-lambda-nodejs-tracer.handler
に更新します。appdynamics-lambda-nodejs-tracer.handler
JS[Configuration] セクションで、次の環境変数を他のSplunk AppDynamics変数に追加します。
APPDYNAMICS_APPLICATION_LAMBDA_HANDLER
= Lambda ハンドラAPPDYNAMICS_IS_ESM_ENABLE
=false
、(ES モジュールを使用している場合はtrue
)
デフォルトでは、Node.js サーバレストレーサは、HTTP または AWS Lambda 間のコールを介して渡された終了コールを自動的に検出します。関数がこれらのプロトコルを使用しない場合は、終了コールを作成する必要があります。「Node.js サーバレストレーサ API」を参照してください。
次のステップ
サーバーレス トレーサ インストゥルメンテーションの確認 の準備ができました。
「Node.js サーバレストレーサとエンドユーザモニタリングの統合」を行うことや、「Node.js サーバレストレーサ API」を使用することもできます。
これらのマニュアルで使用されている Amazon Web サービス、AWS ロゴ、AWS、およびその他の AWS マークは、米国およびその他の国における Amazon.com, Inc. またはその関連会社の商標です。