Node.js 用の AWS Lambda ネイティブ・トレース

Node.js で記述された AWS Lambda 関数に対して、 Instana トレースを設定できます。

前提条件

Lambda監視用に AWS エージェントを設定し、 Instana が AWS Lambda ランタイム内部から収集できないバージョン情報および一部のランタイムメトリクスについて、必要な情報の収集を確実に行うようにします。

注:AWS エージェントの設定は任意です。

Node.js のLambda関数に対するトレース設定

Instana AWS Lambda 関数に対してトレースを有効にする複数の方法を提供します。 以下の設定オプションが利用可能です:

注: Instana は、 GovCloud リージョン(us-gov-west-1 および us-gov-east-1)では Lambda レイヤーを提供していません。 GovCloud リージョンで Instana を使用したい場合は、 Instana パッケージ( Node.js ) @instana/aws-lambda を手動でインストールし、 @ instana/aws-lambdaの手動インストールセクションに記載されている方法でハンドラー関数をラップしてください。

Instana AutoTrace のセットアップ

Node.js 用の Instana AutoTrace セットアップでは、 Instana Lambda 層 およびカスタム関数ハンドラーを使用する AWS ラムダ関数をトレースできます。 この方法では、Lambda 関数コードを変更する必要はなく、構成だけを使用して行います。 この方法は、自動化するのにも、Lambda デプロイメント・パイプラインに組み込むのにも適しています。

Node.js Lambda 関数のトレースを有効にするには、以下のステップを実行します。

  1. Instana Lambda レイヤーを関数に追加します。

    1. Lambda関数の設定ページで、ボックス Layers をクリックし、次にをクリックします Add a layer層
    2. 表示されるポップアップで「レイヤーバージョンのARNを提供」を選択し、ご自身のリージョンに対応する Instana LambdaレイヤーのARNをコピーして貼り付けます。 Instana Lambdaレイヤーの適切なARNは、 Instana Lambda レイヤーセクションで確認できます。 レイヤー選択
  2. Lambda ハンドラーを構成します。 CommonJS を使用する場合は、ハンドラー instana-aws-lambda-auto-wrap.handler をに設定してください。 ES Modules ( ES6 ) を使用する場合は、ハンドラー instana-aws-lambda-auto-wrap-esm.handler を に設定してください(レイヤーバージョン 223 以降で利用可能)。

    ラムダハンドラーの設定を変更するには、構成ページで「基本設定」セクションを見つけます。

    基本設定セクション編集ボタン

    「編集」をクリックし、「ハンドラー」というラベルのフィールドに instana-aws-lambda-auto-wrap.handler を挿入します。

    Instana のハンドラーを設定するために基本設定を編集する

    Instana のLambdaレイヤーは、デフォルトの Node.js ランタイムハンドラーを自動的に index.handlerトリガーします。 カスタムハンドラーを使用する場合は、 Instana Lambda Layer に通知するため、環境変数 LAMBDA_HANDLER でハンドラーを指定してください。 設定が必要なすべての環境変数については、次のセクションを参照してください。

    Lambdaの設定ページに「Lambdaは instana-aws-lambda-auto-wrap.js ファイルを見つけられません」のような警告が表示される場合があります。設定ページに戻った際にも後からこの警告が表示される可能性があります。 この警告を無視して構いません。 ハンドラーは Instana Lambda レイヤーに含まれますが、AWS Lambda 構成ページでは考慮されません。

  3. 環境変数を設定する。 以下の環境変数を追加します。

    • INSTANA_ENDPOINT_URLこの変数は、 サーバー レス監視のエンドポイントです。 該当するリージョン用の、https://serverless- で始まる適切な値を使用していることを確認してください。
    • INSTANA_AGENT_KEY: あなたのエージェントキー。
    • LAMBDA_HANDLERカスタムハンドラーを設定してください。 メインファイルが であり myModule.js、関数 をエクスポートする場合、環境 myHandler変数を に設定してください myModule.myHandler。 デフォルト値はindex.handlerです。

    以下の例では、元のメインのラムダハンドラーは であるため index.js、環境変数 LAMBDA_HANDLER を設定する必要はありません。 デフォルト環境変数の設定

    以下の例では、元のメインのLambdaハンドラーは であるため server.js、環境変数LAMBDA_HANDLER を に設定する必要があります server.handlerカスタム環境変数の設定

    これらの環境変数の正しい値は、 Instana のインストール先へ移動し、...をクリックすることで取得することもできます。 詳細 -> エージェント -> Instana エージェントのインストール -> プラットフォーム: AWS -> テクノロジー: AWS Lambda.

  4. Lambda関数の定義を保存します。 保存

前述の手順はすべて、 AWS Webコンソールまたは、以下のような通常の AWS 管理ツールのいずれかを使用して実行できます:

以下に、AWS Lambdas の Instana 統合を自動化する場合に開始点として役立つ、aws CLI コマンドの例を示します。

# Do not copy and paste this verbatim!
# It will overwrite any previously defined collection of layers and
# environment variables.
aws --region $YOUR_REGION lambda update-function-configuration \
  --function-name $YOUR_LAMBDA_FUNCTION_NAME \
  --layers $INSTANA_LAYER_ARN \
  --handler instana-aws-lambda-auto-wrap.handler \
  --environment ""Variables={INSTANA_ENDPOINT_URL=... , INSTANA_AGENT_KEY=... , ...}""
 

手動 @instana/aws-lambda インストール

Instana Node.js コレクターを手動でインストールするには、次のコマンドを実行します:

npm install --save @instana/aws-lambda
以下の環境変数を追加します。
  • INSTANA_ENDPOINT_URLこの変数は、 サーバー レス監視のエンドポイントです。 該当するリージョン用の、https://serverless- で始まる適切な値を使用していることを確認してください。
  • INSTANA_AGENT_KEY: あなたのエージェントキー。

関数のコードを 「ハンドラを手動でラップする」 セクションに従って修正してください。

ハンドラーの手動ラップ

自動ラップハンドラを使用しない場合、または使用に失敗した場合は、 Node.js AWS Lambda 関数のコードを少し修正し、 Instana トレースを有効にする必要があります。

注: このセクションで説明するコードの変更は、 AutoTrace の「 AWS Lambdas」セクションに記載されているように、 Instana Lambda レイヤーと自動ラップ ハンドラーを使用する場合は不要です。
注: Web パックを使用して ラムダハンドラーをバンドルする場合は、 ない この方法をお勧めします。Instana のコア・パッケージは、Web パックでのプリプロセスをサポートしていないためです。 AutoTraceAWS ラムダス ・アプローチは、webpackを使用するラムダスに適しています。 別の方法として、手動ラップを使用して、webpack による前処理から少なくともパッケージ @instana/aws-lambda (またはすべての依存関係) を除外できます。 Node.js のドキュメントのこのセクションを参照してください。Serverless Frameworkについては、 Serverless Framework のセクションも参照してください。
  1. const instana = require('@instana/aws-lambda'); をハンドラー JavaScript ファイルの先頭に追加します。
  2. instana.wrap() 呼び出しでハンドラー関数をラップします。
  3. AWS Lambda のドキュメントに記載されているように、 Instana バックエンドへの接続用に環境変数を設定してください。 InstanaAutoTrace

以下に、Node.js ベースの AWS Lambda に使用できる、さまざまなハンドラー関数スタイルの適用前および適用後の例をいくつか示します。

async 関数スタイルのハンドラー

async 関数をハンドラーとして使用する場合、ハンドラーは以下のようになります。

exports.handler = async (event, context) => {
  // your code
};
 

結果のコードは以下のようになります。

const instana = require('@instana/aws-lambda');

exports.handler = instana.wrap(async (event, context) => {
  // your code
}); // <- don't forget the closing ) for the instana.wrap(
 

promise スタイルの Lambda ハンドラー

promise スタイルのハンドラーを使用する場合、ハンドラーは以下のようになります。

exports.handler = (event, context) => {
  // your code, which returns a promise
};
 

結果のコードは以下のようになります。

const instana = require('@instana/aws-lambda');

exports.handler = instana.wrap((event, context) => {
  // your code, which returns a promise
}); // <- don't forget the closing ) for the instana.wrap(
 

callback スタイルの Lambda ハンドラー

callback スタイルのハンドラーを使用する場合、ハンドラーは以下のようになります。

exports.handler = (event, context, callback) => {
  // your code
};
 

結果のコードは以下のようになります。

const instana = require('@instana/aws-lambda');

exports.handler = instana.wrap((event, context, callback) => {
  // your code
}); // <- don't forget the closing ) for the instana.wrap(
 

構成オブジェクト

ハンドラをラップする際、最初の引数としてオプションの設定オブジェクトを渡すこともできます:

exports.handler = instana.wrap({
    // ... your configuration, for example:
    tracing: {
      stackTraceLength: 10
    }
  },
  async (event, context) => {
  // your code
});
 

ネイティブ ラムダトレース ( agentHostagentPortreportUnhandledPromiseRejectionsなど) でサポートされない構成値は、サイレントに無視されます。

なお、セクション「 追加環境変数」 に記載されている環境変数や、 Node.js の設定ページに記載されている環境変数のほとんどを使用することも可能です。

Instana コンテナベースの関数向けラムダレイヤー

チームがコンテナベースのLambdaデプロイを使用している場合、当社のベースコンテナを Docker Hub で icr.io/instana/aws-lambda-nodejs 利用するか、Dockerfile に以下のスニペットを含め、 ビルド時の引数を適切なバージョンに設定できます。

Instana 現在、 x86_64 アーキテクチャのみをサポートしています。

この画像は、 FedRAMP-compliant 環境での使用を意図したものではありません。

# This is the container image that delivers Instana's monitoring capabilities.
# It will not become the base image for your Lambda container image, it just provides a few files.
FROM icr.io/instana/aws-lambda-nodejs:latest as instana-layer

# This is the actual base image for your Lambda container image. You can also use any other base image that is suitable
# for container image based Lambda functions.
FROM public.ecr.aws/lambda/nodejs:14

# Copy Instana's Node.js monitoring components into your Lambda container image.
COPY --from=instana-layer /opt/extensions/ /opt/extensions/
COPY --from=instana-layer /opt/nodejs/ /opt/nodejs/

# The remainder of your Dockerfile, as it was without adding the Instana layer. The following is just an example:
COPY index.js package.json package-lock.json /var/task/
WORKDIR /var/task
RUN npm install

# Override the CMD. This can also be done as a parameter override outside of the Dockerfile, for example in the AWS console.
# If you use ES modules, use CMD [ "instana-aws-lambda-auto-wrap-esm.handler" ] instead.
CMD [ "instana-aws-lambda-auto-wrap.handler" ]
 

icr.io/instana/aws-lambda-nodejs:latestの代わりに、 @instana/aws-lambda 1.137.2 以上の特定のバージョンの Instana npm モジュールを使用することもできます ( ログの変更を参照)。以下に例を示します。

FROM icr.io/instana/aws-lambda-nodejs:1.140.1 as instana-layer
 

あるいは、最新のマイナー/パッチ・リリースを考慮しながら、メジャー・バージョンのみをピン留めすることができます。

FROM icr.io/instana/aws-lambda-nodejs:1 as instana-layer
 
注: icr.io/instana/aws-lambda-nodejs の将来のバージョンでは、古い ラムダNode.js ランタイムのサポートが除去されます。 例えば、バージョン icr.io/instana/aws-lambda-nodejs:2.0.0以降、 nodejs8.x のサポートは廃止されます。 古い ラムダランタイムを使用する場合は、メジャー・バージョンをピン留めすることをお勧めします。

Instana トレースと Serverless Framework の統合

Instana トレースを Serverless Framework に統合するために編集 serverless.yml してください。 以下の手順に従います。

  1. リストからレイヤーARN をコピーし、対象の関数定義の layersセクションにARNを追加します。

  2. 環境変数 INSTANA_AGENT_KEYINSTANA_ENDPOINT_URL およびを追加します LAMBDA_HANDLER。 詳細については、 Instana AutoTrace setup を参照してください。

次の例を参照してください serverless.yml

service: service-a

provider:
  name: aws
  runtime: nodejs16.x
  stage: dev
  region: us-east-2

functions:
  with-layer:
    environment:
      INSTANA_ENDPOINT_URL: INSTANA_ENDPOINT_URL
      INSTANA_AGENT_KEY: INSTANA_AGENT_KEY
      LAMBDA_HANDLER: src/index.handler
    layers:
      - arn:aws:lambda:us-east-2:410797082306:layer:instana-nodejs:111
    handler: instana-aws-lambda-auto-wrap.handler
 

サーバーレス オフライン

前提条件:Instana トレースのServerless Frameworkとの統合 」セクションの手順1および手順2を確実に実行済みであることを確認してください。

Instana をServerless Frameworkおよび Serverless Offline と統合するために、ファイルを serverless.yml 編集してください。 以下の手順に従います。

  1. 環境 NODE_PATH 変数を に設定してください $NODE_PATH:/opt/nodejs/node_modules
  2. フィールドをセクション useDockertruecustom 内に設定する。 その後、 Instana レイヤーが自動的に Docker コンテナにダウンロードされます。

次の例を参照してください serverless.yml

service: service-b

provider:
  name: aws
  runtime: nodejs12.x
  stage: dev
  region: us-east-2

plugins:
  - serverless-offline

custom:
  serverless-offline:
    useDocker: true

functions:
  with-serverless-offline:
    environment:
      NODE_PATH: $NODE_PATH:/opt/nodejs/node_modules
      INSTANA_ENDPOINT_URL: INSTANA_ENDPOINT_URL
      INSTANA_AGENT_KEY: INSTANA_AGENT_KEY
      LAMBDA_HANDLER: src/index.handler
    layers:
      - arn:aws:lambda:us-east-2:410797082306:layer:instana-nodejs:111
    handler: instana-aws-lambda-auto-wrap.handler
 

サーバーレス Webpack

前提条件:Instana トレースのServerless Frameworkとの統合 」セクションの手順1および手順2を確実に実行済みであることを確認してください。

Instana をServerless Frameworkおよび Serverless Webpack と統合するために、ファイルを serverless.yml 編集してください。

ターゲットのLambda関数定義に entrypoint 追加します。 エントリポイントは、元の Node.js Lambdaハンドラーであり、 Instana Lambdaレイヤーによって自動的にトリガーされます。 詳細については、 Instana AutoTrace setup を参照してください。

次の例を参照してください serverless.yml

service: service-c

provider:
  name: aws
  runtime: nodejs12.x
  stage: dev
  region: us-east-2

plugins:
  - serverless-webpack

package:
  individually: true

functions:
  with-serverless-webpack:
    environment:
      INSTANA_ENDPOINT_URL: INSTANA_ENDPOINT_URL
      INSTANA_AGENT_KEY: INSTANA_AGENT_KEY
      LAMBDA_HANDLER: src/index.handler
    layers:
      - arn:aws:lambda:us-east-2:410797082306:layer:instana-nodejs:110
    handler: instana-aws-lambda-auto-wrap.handler
    entrypoint: src/index.handler
 

注記:

Instana Lambda レイヤー

Node.js レイヤーには、 InstanaAWS Lambda 拡張機能が含まれています。 監視データとトレースは、 Instana Lambda拡張機能にローカルでオフロードされ、その後 Instana バックエンドに転送されます。 この機能には以下の利点があります:ハンドラーが終了するとすぐに、Lambda関数は呼び出し元クライアントに応答します。 Instana バックエンドへのデータ送信を待つ必要はありません。

この機能は、メモリが256 MB以上で構成されたLambda関数に限定されます。 Instana Lambda 拡張機能を無効にするには、Lambda 関 INSTANA_DISABLE_LAMBDA_EXTENSION 数の環境変数を空でない文字列に設定します。

注:Instana Lambdaレイヤーを使用するには、 Instana AutoTrace の設定手順に従ってください。
注: Instana は、 GovCloud リージョン(us-gov-west-1 および us-gov-east-1)では Lambda レイヤーを提供していません。 GovCloud リージョンで Instana を使用するには、 Instana パッケージ( Node.js ) @instana/aws-lambda を手動でインストールし、 @ instana/aws-lambdaの手動インストールセクションに記載されている方法でハンドラー関数をラップする必要があります。

アーキテクチャ x86_64

サポート対象ランタイムに記載されているLambdaランタイム向けの AWS Lambda レイヤーの最新バージョンのARNは、リージョンごとに以下の通りです:

リージョン ARN @instana/aws-lambda バージョン
af-south-1 arn:aws:lambda:af-south-1:410797082306:layer:instana-nodejs:154 5.2.2
ap-east-1 arn:aws:lambda:ap-east-1:410797082306:layer:instana-nodejs:153 5.2.2
ap-east-2 arn:aws:lambda:ap-east-2:410797082306:layer:instana-nodejs:40 5.2.2
ap-northeast-1 arn:aws:lambda:ap-northeast-1:410797082306:layer:instana-nodejs:309 5.2.2
ap-northeast-2 arn:aws:lambda:ap-northeast-2:410797082306:layer:instana-nodejs:307 5.2.2
ap-northeast-3 arn:aws:lambda:ap-northeast-3:410797082306:layer:instana-nodejs:153 5.2.2
ap-south-1 arn:aws:lambda:ap-south-1:410797082306:layer:instana-nodejs:307 5.2.2
ap-south-2 arn:aws:lambda:ap-south-2:410797082306:layer:instana-nodejs:153 5.2.2
ap-southeast-1 arn:aws:lambda:ap-southeast-1:410797082306:layer:instana-nodejs:307 5.2.2
ap-southeast-2 arn:aws:lambda:ap-southeast-2:410797082306:layer:instana-nodejs:306 5.2.2
ap-southeast-3 arn:aws:lambda:ap-southeast-3:410797082306:layer:instana-nodejs:152 5.2.2
ap-southeast-4 arn:aws:lambda:ap-southeast-4:410797082306:layer:instana-nodejs:152 5.2.2
ap-southeast-5 arn:aws:lambda:ap-southeast-5:410797082306:layer:instana-nodejs:101 5.2.2
ap-southeast-6 arn:aws:lambda:ap-southeast-6:410797082306:layer:instana-nodejs:22 5.2.2
ap-southeast-7 arn:aws:lambda:ap-southeast-7:410797082306:layer:instana-nodejs:58 5.2.2
ca-central-1 arn:aws:lambda:ca-central-1:410797082306:layer:instana-nodejs:305 5.2.2
ca-west-1 arn:aws:lambda:ca-west-1:410797082306:layer:instana-nodejs:133 5.2.2
cn-north-1 arn:aws-cn:lambda:cn-north-1:107998019096:layer:instana-nodejs:79 5.2.1
cn-northwest-1 arn:aws-cn:lambda:cn-northwest-1:107998019096:layer:instana-nodejs:83 5.2.1
eu-central-1 arn:aws:lambda:eu-central-1:410797082306:layer:instana-nodejs:283 5.2.2
eu-central-2 arn:aws:lambda:eu-central-2:410797082306:layer:instana-nodejs:129 5.2.2
eu-north-1 arn:aws:lambda:eu-north-1:410797082306:layer:instana-nodejs:283 5.2.2
eu-south-1 arn:aws:lambda:eu-south-1:410797082306:layer:instana-nodejs:129 5.2.2
eu-south-2 arn:aws:lambda:eu-south-2:410797082306:layer:instana-nodejs:129 5.2.2
eu-west-1 arn:aws:lambda:eu-west-1:410797082306:layer:instana-nodejs:283 5.2.2
eu-west-2 arn:aws:lambda:eu-west-2:410797082306:layer:instana-nodejs:283 5.2.2
eu-west-3 arn:aws:lambda:eu-west-3:410797082306:layer:instana-nodejs:283 5.2.2
il-central-1 arn:aws:lambda:il-central-1:410797082306:layer:instana-nodejs:126 5.2.2
me-central-1 arn:aws:lambda:me-central-1:410797082306:layer:instana-nodejs:128 5.2.2
me-south-1 arn:aws:lambda:me-south-1:410797082306:layer:instana-nodejs:128 5.2.2
mx-central-1 arn:aws:lambda:mx-central-1:410797082306:layer:instana-nodejs:56 5.2.2
sa-east-1 arn:aws:lambda:sa-east-1:410797082306:layer:instana-nodejs:282 5.2.2
us-east-1 arn:aws:lambda:us-east-1:410797082306:layer:instana-nodejs:282 5.2.2
us-east-2 arn:aws:lambda:us-east-2:410797082306:layer:instana-nodejs:282 5.2.2
us-west-1 arn:aws:lambda:us-west-1:410797082306:layer:instana-nodejs:282 5.2.2
us-west-2 arn:aws:lambda:us-west-2:410797082306:layer:instana-nodejs:282 5.2.2

つまり、そのパターンは (中国における arn:aws:lambda:${region}:410797082306:layer:instana-nodejs:${layer-version}AWS 地域 arn:aws-cn:lambda:${region}:107998019096:layer:instana-nodejs:${layer-version} の場合は) である。

常に最新バージョンを使用し、レイヤーのバージョンを定期的に更新してください。これにより、レイヤーの新バージョン公開時に提供する新機能や修正の恩恵を受けられます。

アーキテクチャ arm64

リージョン ARN @instana/aws-lambda バージョン
af-south-1 arn:aws:lambda:af-south-1:410797082306:layer:instana-nodejs-arm64:127 5.2.2
ap-east-1 arn:aws:lambda:ap-east-1:410797082306:layer:instana-nodejs-arm64:127 5.2.2
ap-east-2 arn:aws:lambda:ap-east-2:410797082306:layer:instana-nodejs-arm64:39 5.2.2
ap-northeast-1 arn:aws:lambda:ap-northeast-1:410797082306:layer:instana-nodejs-arm64:166 5.2.2
ap-northeast-2 arn:aws:lambda:ap-northeast-2:410797082306:layer:instana-nodejs-arm64:166 5.2.2
ap-northeast-3 arn:aws:lambda:ap-northeast-3:410797082306:layer:instana-nodejs-arm64:127 5.2.2
ap-south-1 arn:aws:lambda:ap-south-1:410797082306:layer:instana-nodejs-arm64:166 5.2.2
ap-south-2 arn:aws:lambda:ap-south-2:410797082306:layer:instana-nodejs-arm64:127 5.2.2
ap-southeast-1 arn:aws:lambda:ap-southeast-1:410797082306:layer:instana-nodejs-arm64:166 5.2.2
ap-southeast-2 arn:aws:lambda:ap-southeast-2:410797082306:layer:instana-nodejs-arm64:166 5.2.2
ap-southeast-3 arn:aws:lambda:ap-southeast-3:410797082306:layer:instana-nodejs-arm64:127 5.2.2
ap-southeast-4 arn:aws:lambda:ap-southeast-4:410797082306:layer:instana-nodejs-arm64:127 5.2.2
ap-southeast-5 arn:aws:lambda:ap-southeast-5:410797082306:layer:instana-nodejs-arm64:84 5.2.2
ap-southeast-6 arn:aws:lambda:ap-southeast-6:410797082306:layer:instana-nodejs-arm64:22 5.2.2
ap-southeast-7 arn:aws:lambda:ap-southeast-7:410797082306:layer:instana-nodejs-arm64:57 5.2.2
ca-central-1 arn:aws:lambda:ca-central-1:410797082306:layer:instana-nodejs-arm64:166 5.2.2
ca-west-1 arn:aws:lambda:ca-west-1:410797082306:layer:instana-nodejs-arm64:111 5.2.2
cn-north-1 arn:aws-cn:lambda:cn-north-1:107998019096:layer:instana-nodejs-arm64:75 5.2.2
cn-northwest-1 arn:aws-cn:lambda:cn-northwest-1:107998019096:layer:instana-nodejs-arm64:81 5.2.2
eu-central-1 arn:aws:lambda:eu-central-1:410797082306:layer:instana-nodejs-arm64:163 5.2.2
eu-central-2 arn:aws:lambda:eu-central-2:410797082306:layer:instana-nodejs-arm64:124 5.2.2
eu-north-1 arn:aws:lambda:eu-north-1:410797082306:layer:instana-nodejs-arm64:163 5.2.2
eu-south-1 arn:aws:lambda:eu-south-1:410797082306:layer:instana-nodejs-arm64:124 5.2.2
eu-south-2 arn:aws:lambda:eu-south-2:410797082306:layer:instana-nodejs-arm64:124 5.2.2
eu-west-1 arn:aws:lambda:eu-west-1:410797082306:layer:instana-nodejs-arm64:163 5.2.2
eu-west-2 arn:aws:lambda:eu-west-2:410797082306:layer:instana-nodejs-arm64:163 5.2.2
eu-west-3 arn:aws:lambda:eu-west-3:410797082306:layer:instana-nodejs-arm64:163 5.2.2
il-central-1 arn:aws:lambda:il-central-1:410797082306:layer:instana-nodejs-arm64:122 5.2.2
me-central-1 arn:aws:lambda:me-central-1:410797082306:layer:instana-nodejs-arm64:124 5.2.2
me-south-1 arn:aws:lambda:me-south-1:410797082306:layer:instana-nodejs-arm64:124 5.2.2
mx-central-1 arn:aws:lambda:mx-central-1:410797082306:layer:instana-nodejs-arm64:55 5.2.2
sa-east-1 arn:aws:lambda:sa-east-1:410797082306:layer:instana-nodejs-arm64:163 5.2.2
us-east-1 arn:aws:lambda:us-east-1:410797082306:layer:instana-nodejs-arm64:163 5.2.2
us-east-2 arn:aws:lambda:us-east-2:410797082306:layer:instana-nodejs-arm64:163 5.2.2
us-west-1 arn:aws:lambda:us-west-1:410797082306:layer:instana-nodejs-arm64:163 5.2.2
us-west-2 arn:aws:lambda:us-west-2:410797082306:layer:instana-nodejs-arm64:163 5.2.2

SSMサポート

レイヤー instana-nodejs/@instana/aws-lambda@1.138.0のバージョン 99 から使用可能です。

AWS SSM (System Manager) パラメーター・ストアを介して Instana エージェント・キーを指定することもできます。

  1. Instana エージェント・キーを SSM パラメーター・ストアに追加します。 パラメーター名を覚えておくか、コピーしてください。
  2. 環境変数から INSTANA_AGENT_KEY を削除します。
  3. コピーしたパラメーター名を使用して、環境変数に INSTANA_SSM_PARAM_NAME を追加します。
  4. パラメーターを「SecureString」として追加した場合は、 INSTANA_SSM_DECRYPTION=trueも設定する必要があります。 「ストリング」型を使用した場合は、追加の変数を設定する必要はありません。
注: 重要:SSMサポートには以下の注意点があります。環境変数からINSTANA_AGENT_KEYを削除しない場合、SSM環境変数は無視されます。 Lambda関数の実行時間が短い場合、SSMフェッチが関数の終了前に完了しない可能性があります。 このような場合、 Instana エージェントキーが取得できない可能性があります。 この問題を回避するには、環境変数 INSTANA_AGENT_KEY を通じてキーを直接提供してください。

Lambda 関数での Instana API の使用

@instana/collectorを使用する単純なバニラ Node.js アプリの場合と同様に、ラムダコードで Instana API 全体にアクセスして使用することができます。

Instana Node.js のLambdaレイヤーと自動ラップハンドラーを使用する場合、コードに次の行を追加する必要があります:

const instana = require('@instana/aws-lambda');
 

手動でラップする場合、その行は既にLambdaハンドラーファイル内に存在します。

注:Instana Node.js の Lambda レイヤーを使用する場合、パッケージを依存 @instana/aws-lambda 関係として ファイル package.json に追加しないでください。 このパッケージは、 Instana Node.js Lambda レイヤーによって提供されています。 依存関係として追加すると同時にLambdaレイヤーを使用することはサポートされていません。

Lambda関数のコードが複数のソースファイルで構成されている場合、他のソースコードファイルに const instana = require('@instana/aws-lambda'); 次のステートメントを追加することで、 Instana、 Node.js、 API にアクセスできます。

追加の環境変数

名前 Default 説明
INSTANA_DISABLE_LAMBDA_EXTENSION false 空でない任意のストリング。 ラムダ拡張を無効にするかどうか。
INSTANA_ENABLE_LAMBDA_TIMEOUT_DETECTION false trueまたはfalse この機能はデフォルトで無効になっています。タイムアウトハンドラの実行が別の実行で発生する可能性があるためです。 デバッグ目的でのみ使用してください。 これを有効にすると、意図しない結果を招く可能性があります。 では、自己責任で有効にしてください。
INSTANA_MINIMUM_LAMBDA_TIMEOUT_FOR_TIMEOUT_DETECTION_IN_MS 2000 年 タイムアウト(ミリ秒単位) 最小タイムアウト検出時間をミリ秒単位で増加させる。
INSTANA_DEBUG false trueまたはfalse デバッグモードを有効にします。
INSTANA_TIMEOUT 1000 数値 Instana バックエンドへのデータ送信タイムアウト(ミリ秒単位)