AWS Node.js용 람다 원시 추적

Node.js 에 작성된 AWS 람다 함수에 대해 Instana 추적을 설정할 수 있습니다.

Node.js 람다 함수에 대한 추적 설정하기

Instana는 AWS 람다 함수에 대한 추적을 활성화하는 여러 가지 방법을 제공합니다. 다음과 같은 설정 옵션을 사용할 수 있습니다:

참고: Instana는 GovCloud 지역(us-gov-west-1us-gov-east-1)에서는 람다 레이어를 제공하지 않습니다. GovCloud 지역에서 Instana를 사용하려면 Instana Node.js 패키지 @instana/aws-lambda 를 수동으로 설치하고 @instana/aws-lambda 수동 설치하기 섹션에 설명된 대로 핸들러 함수를 래핑하세요.

Instana AutoTrace 설정

Node.js 에 대한 Instana AutoTrace 설정으로 AWS 람다 함수를 추적할 수 있는 방법은 Instana 람다 레이어와 사용자 정의 함수 핸들러를 사용하는 것입니다. 이 접근 방식은 람다 함수 코드를 수정할 필요가 없으며 설정을 통해 순전히 수행됩니다. 또한 자동화하거나 람다 배포 파이프라인에 포함시키기에 적합합니다.

Node.js 람다 함수 추적을 활성화하려면 다음 단계를 수행하세요:

  1. 함수에 Instana Lambda 레이어를 추가합니다.

    1. Lambda 함수의 구성 페이지에서 상자를 Layers 클릭한 다음 을 Add a layer클릭하세요. 계층
    2. 열리는 팝업에서 '레이어 버전 ARN 제공'을 선택하고, 해당 지역에 맞는 Instana Lambda 레이어의 ARN을 복사하여 붙여넣으세요. Instana Lambda 레이어의 올바른 ARN은 Instana Lambda 레이어 섹션에서 찾을 수 있습니다. 계층 선택
  2. 람다 핸들러를 구성합니다. 를 사용하는 경우 핸들러를 instana-aws-lambda-auto-wrap.handler 로 설정합니다 CommonJS. 핸들러를 다음으로 설정하세요 instana-aws-lambda-auto-wrap-esm.handler ES 모듈( ES6 )을 사용하는 경우(레이어 버전 223부터 사용 가능).

    람다 핸들러의 설정을 변경하려면 구성 페이지에서 '기본 설정' 섹션을 참조하세요.

    기본 설정 섹션 편집 버튼

    편집을 클릭하고 '핸들러'라고 표시된 필드에 instana-aws-lambda-auto-wrap.handler 을 입력합니다.

    기본 설정을 편집하여 Instana의 핸들러를 설정합니다

    Instana 람다 계층은 기본 Node.js 런타임 핸들러 index.handler 를 자동으로 트리거합니다. 사용자 지정 핸들러를 사용하는 경우 환경 변수 LAMBDA_HANDLER에서 핸들러를 지정하여 Instana 람다 레이어에 알립니다. 설정해야 하는 모든 환경 변수는 다음 섹션을 참조하세요.

    Lambda 구성 페이지에 Lambda가 파일을 찾을 수 없음 instana-aws-lambda-auto-wrap.js 과 같은 경고가 표시될 수 있습니다. 이 경고는 나중에 구성 페이지로 돌아올 때도 표시될 수 있습니다. 이 경고에 현혹되지 마세요. 핸들러는 Instana 람다 레이어에 포함되어 있지만 AWS 람다 구성 페이지에서는 이를 고려하지 않습니다.

  3. 환경 변수를 구성합니다. 다음 환경 변수를 추가하십시오.

    • INSTANA_ENDPOINT_URL: 서버리스 모니터링 엔드포인트입니다. https://serverless- 로 시작하는 지역에 맞는 올바른 값을 사용해야 합니다.
    • INSTANA_AGENT_KEY: 상담원 키.
    • LAMBDA_HANDLER: 사용자 지정 핸들러를 설정합니다. 기본 파일이 myHandler 함수를 내보내는 myModule.js 인 경우 환경 변수를 myModule.myHandler 로 설정합니다. 기본값은 index.handler입니다.

    다음 예시에서 원래 메인 람다 핸들러는 이므로 index.js, 환경 변수 LAMBDA_HANDLER 를 설정할 필요가 없습니다. 기본 환경 변수에 대한 설정

    다음 예시에서 원래 메인 람다 핸들러는 입니다 server.js. 따라서 환경 변수 LAMBDA_HANDLER를 로 설정해야 server.handler 합니다. 사용자 지정 환경 변수에 대한 설정

    Instana 설치로 이동하여 이러한 환경 변수에 대한 올바른 값을 얻을 수도 있습니다. 자세히 보기 -> 에이전트 -> Instana 에이전트 설치하기 -> 플랫폼: AWS -> 기술: AWS Lambda.

  4. 람다 함수 정의를 저장합니다. 저장

앞서 설명한 모든 단계는 AWS 웹 콘솔 또는 일반적인 AWS 관리 도구 중 하나를 통해 수행할 수 있습니다:

다음은 AWS 람다의 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 람다 레이어를 사용하는 대신 npm 패키지 @instana/aws-lambda 를 수동으로 설치하도록 선택할 수도 있습니다:

  1. 프로젝트 디렉터리에서 npm install -S @instana/aws-lambda (또는 yarn add @instana/aws-lambda)을 실행하여 프로젝트에 @instana/aws-lambda 종속성을 추가합니다. 이렇게 하면 패키지가 node_modules 폴더에 추가되고 package.json 파일에 종속성이 저장됩니다.
  2. 환경 변수 INSTANA_ENDPOINT_URL INSTANA_AGENT_KEY 를 필요한 값으로 추가합니다.
  3. 핸들러 수동 래핑하기 섹션에 따라 함수의 코드를 수정합니다.

핸들러 수동 래핑

자동 줄 바꿈 핸들러를 원하지 않거나 사용하지 않으려면 Node.js AWS 람다 함수의 코드를 약간 수정하여 Instana 추적을 사용하도록 설정해야 합니다.

참고: AutoTrace AWS 람다 섹션에 설명된 대로 Instana 람다 레이어와 자동 줄 바꿈 처리기를 사용하는 경우에는 이 섹션에서 설명하는 코드 수정이 필요하지 않습니다.
참고: 람다 핸들러를 웹팩과 함께 번들로 제공하는 경우, Instana의 코어 팩지는 웹팩으로 사전 처리하는 것을 지원하지 않으므로 이 방법은 권장되지 않습니다. AutoTrace AWS 람다 접근 방식은 웹팩을 사용하는 람다에 적합합니다. 또는 수동 래핑을 사용하여 최소한 @instana/aws-lambda 패키지(또는 모든 종속성)를 웹팩에서 사전 처리되지 않도록 제외할 수 있습니다. 서버리스 프레임워크의 경우 Node.js 문서에서 이 섹션을 참조하고, 서버리스 프레임워크 섹션도 참조하세요.
  1. 핸들러 JavaScript 파일의 맨 위에 const instana = require('@instana/aws-lambda'); 줄을 추가합니다.
  2. 핸들러 함수를 instana.wrap() 호출로 래핑하세요.
  3. Instana AutoTrace for AWS Lambda 설명서에 설명된 대로 Instana 백엔드 연결에 대한 환경 변수를 구성합니다.

다음은 Node.js 기반 AWS 람다에 사용할 수 있는 다양한 핸들러 함수 스타일에 대한 전후 예제입니다:

비동기 함수 스타일 핸들러

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(
 

프로미스 스타일 람다 핸들러

프로미스 스타일 핸들러를 사용하는 경우 다음과 같이 표시되어야 합니다:

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(
 

콜백 스타일 람다 핸들러

콜백 스타일 핸들러를 사용하는 경우 다음과 같이 표시되어야 합니다:

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
});
 

기본 람다 추적에서 지원되지 않는 구성 값(예: agentHost, agentPort , reportUnhandledPromiseRejections)은 자동으로 무시됩니다.

추가 환경 변수 섹션에 나열된 환경 변수와 Node.js 구성 페이지에 나열된 대부분의 환경 변수를 사용할 수도 있습니다.

컨테이너 기반 기능을 위한 Instana Lambda 레이어

팀에서 컨테이너 기반 Lambda 배포를 사용하는 경우 icr.io/instana/aws-lambda-nodejs 에서 기본 컨테이너를 사용하거나 Docker파일에 다음 스니펫을 포함시키고 빌드 시간 인수를 적절한 버전으로 설정할 수 있습니다.

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 보다 크거나 같은 특정 버전의 Instana npm 모듈 1.137.2 ( 변경 로그 참조)을 사용할 수도 있습니다:

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 버전에서는 이전 Lambda Node.js 런타임에 대한 지원이 중단됩니다. 예를 들어, 버전 icr.io/instana/aws-lambda-nodejs:2.0.0 부터 nodejs8.x 에 대한 지원이 중단됩니다. 이전 람다 런타임을 사용할 때는 메이저 버전을 고정하는 것이 좋습니다.

서버리스 프레임워크와 Instana 추적 통합

serverless.yml 을 편집하여 Instana 추적을 서버리스 프레임워크와 통합합니다. 다음 단계를 따르십시오.

  1. 목록에서 레이어 ARN을 복사하고 대상 함수 정의의 레이어 섹션에 ARN을 추가합니다.

  2. 환경 변수 INSTANA_AGENT_KEY, INSTANA_ENDPOINT_URLLAMBDA_HANDLER 를 추가합니다. 자세한 내용은 Instana AutoTrace 설정을 참조하세요.

다음 예제 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 추적 통합하기 섹션의 1단계와 2단계를 따랐는지 확인합니다.

serverless.yml 파일을 편집하여 Instana를 서버리스 프레임워크 및 서버리스 오프라인과 연동합니다. 다음 단계를 따르십시오.

  1. NODE_PATH 환경 변수를 $NODE_PATH:/opt/nodejs/node_modules 으로 설정합니다.
  2. Set useDocker 필드를 custom 섹션에서 true 로 설정합니다. 그러면 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
 

서버리스 웹팩

전제 조건: 서버리스 프레임워크와 Instana 추적 통합하기 섹션의 1단계와 2단계를 따랐는지 확인합니다.

serverless.yml 파일을 편집하여 Instana를 서버리스 프레임워크 및 서버리스 웹팩과 연동합니다.

대상 람다 함수 정의에 entrypoint 을 추가합니다. 엔트리포인트는 원래의 Node.js 람다 핸들러로, Instana 람다 레이어에 의해 자동으로 트리거됩니다. 자세한 내용은 Instana AutoTrace 설정을 참조하세요.

다음 예제 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 람다 레이어

Node.js 레이어에는 Instana AWS Lambda 확장이 포함되어 있습니다. 모니터링 데이터와 추적은 로컬에서 Instana Lambda 확장 프로그램으로 오프로드된 다음, Instana 백엔드로 전달됩니다. 이 기능은 다음과 같은 이점을 제공합니다. 람다 함수는 데이터가 Instana 백엔드로 전송될 때까지 기다리지 않고 핸들러가 완료된 후 즉시 호출하는 클라이언트에 응답합니다.

이 기능은 256MB 이상의 메모리로 구성된 람다 함수로 제한됩니다. 환경 변수를 Lambda 함수에 대해 비어 있지 않은 문자열로 설정하여 Instana Lambda 확장을 비활성화할 수 있습니다 INSTANA_DISABLE_LAMBDA_EXTENSION 를 비어 있지 않은 문자열로 설정하여 Lambda 함수를 비활성화할 수 있습니다.

참고: Instana Lambda 계층을 사용하려면 Instana AutoTrace 설정을 따르세요.
참고: Instana는 GovCloud 지역(us-gov-west-1us-gov-east-1)에서는 람다 레이어를 제공하지 않습니다. 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:150 5.0.2
ap-east-1 arn:aws:lambda:ap-east-1:410797082306:layer:instana-nodejs:149 5.0.2
ap-east-2 arn:aws:lambda:ap-east-2:410797082306:layer:instana-nodejs:36 5.0.2
ap-northeast-1 arn:aws:lambda:ap-northeast-1:410797082306:layer:instana-nodejs:305 5.0.2
ap-northeast-2 arn:aws:lambda:ap-northeast-2:410797082306:layer:instana-nodejs:303 5.0.2
ap-northeast-3 arn:aws:lambda:ap-northeast-3:410797082306:layer:instana-nodejs:149 5.0.2
ap-south-1 arn:aws:lambda:ap-south-1:410797082306:layer:instana-nodejs:303 5.0.2
ap-south-2 arn:aws:lambda:ap-south-2:410797082306:layer:instana-nodejs:149 5.0.2
ap-southeast-1 arn:aws:lambda:ap-southeast-1:410797082306:layer:instana-nodejs:303 5.0.2
ap-southeast-2 arn:aws:lambda:ap-southeast-2:410797082306:layer:instana-nodejs:302 5.0.2
ap-southeast-3 arn:aws:lambda:ap-southeast-3:410797082306:layer:instana-nodejs:148 5.0.2
ap-southeast-4 arn:aws:lambda:ap-southeast-4:410797082306:layer:instana-nodejs:148 5.0.2
ap-southeast-5 arn:aws:lambda:ap-southeast-5:410797082306:layer:instana-nodejs:97 5.0.2
ap-southeast-6 arn:aws:lambda:ap-southeast-6:410797082306:layer:instana-nodejs:18 5.0.2
ap-southeast-7 arn:aws:lambda:ap-southeast-7:410797082306:layer:instana-nodejs:54 5.0.2
ca-central-1 arn:aws:lambda:ca-central-1:410797082306:layer:instana-nodejs:301 5.0.2
ca-west-1 arn:aws:lambda:ca-west-1:410797082306:layer:instana-nodejs:129 5.0.2
cn-north-1 arn:aws-cn:lambda:cn-north-1:107998019096:layer:instana-nodejs:78 5.0.1
cn-northwest-1 arn:aws-cn:lambda:cn-northwest-1:107998019096:layer:instana-nodejs:82 5.0.1
eu-central-1 arn:aws:lambda:eu-central-1:410797082306:layer:instana-nodejs:279 5.0.2
eu-central-2 arn:aws:lambda:eu-central-2:410797082306:layer:instana-nodejs:125 5.0.2
eu-north-1 arn:aws:lambda:eu-north-1:410797082306:layer:instana-nodejs:279 5.0.2
eu-south-1 arn:aws:lambda:eu-south-1:410797082306:layer:instana-nodejs:125 5.0.2
eu-south-2 arn:aws:lambda:eu-south-2:410797082306:layer:instana-nodejs:125 5.0.2
eu-west-1 arn:aws:lambda:eu-west-1:410797082306:layer:instana-nodejs:279 5.0.2
eu-west-2 arn:aws:lambda:eu-west-2:410797082306:layer:instana-nodejs:279 5.0.2
eu-west-3 arn:aws:lambda:eu-west-3:410797082306:layer:instana-nodejs:279 5.0.2
il-central-1 arn:aws:lambda:il-central-1:410797082306:layer:instana-nodejs:122 5.0.2
me-central-1 arn:aws:lambda:me-central-1:410797082306:layer:instana-nodejs:124 5.0.2
me-south-1 arn:aws:lambda:me-south-1:410797082306:layer:instana-nodejs:124 5.0.2
mx-central-1 arn:aws:lambda:mx-central-1:410797082306:layer:instana-nodejs:52 5.0.2
sa-east-1 arn:aws:lambda:sa-east-1:410797082306:layer:instana-nodejs:278 5.0.2
us-east-1 arn:aws:lambda:us-east-1:410797082306:layer:instana-nodejs:278 5.0.2
us-east-2 arn:aws:lambda:us-east-2:410797082306:layer:instana-nodejs:278 5.0.2
us-west-1 arn:aws:lambda:us-west-1:410797082306:layer:instana-nodejs:278 5.0.2
us-west-2 arn:aws:lambda:us-west-2:410797082306:layer:instana-nodejs:278 5.0.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:123 5.0.2
ap-east-1 arn:aws:lambda:ap-east-1:410797082306:layer:instana-nodejs-arm64:123 5.0.2
ap-east-2 arn:aws:lambda:ap-east-2:410797082306:layer:instana-nodejs-arm64:35 5.0.2
ap-northeast-1 arn:aws:lambda:ap-northeast-1:410797082306:layer:instana-nodejs-arm64:162 5.0.2
ap-northeast-2 arn:aws:lambda:ap-northeast-2:410797082306:layer:instana-nodejs-arm64:162 5.0.2
ap-northeast-3 arn:aws:lambda:ap-northeast-3:410797082306:layer:instana-nodejs-arm64:123 5.0.2
ap-south-1 arn:aws:lambda:ap-south-1:410797082306:layer:instana-nodejs-arm64:162 5.0.2
ap-south-2 arn:aws:lambda:ap-south-2:410797082306:layer:instana-nodejs-arm64:123 5.0.2
ap-southeast-1 arn:aws:lambda:ap-southeast-1:410797082306:layer:instana-nodejs-arm64:162 5.0.2
ap-southeast-2 arn:aws:lambda:ap-southeast-2:410797082306:layer:instana-nodejs-arm64:162 5.0.2
ap-southeast-3 arn:aws:lambda:ap-southeast-3:410797082306:layer:instana-nodejs-arm64:123 5.0.2
ap-southeast-4 arn:aws:lambda:ap-southeast-4:410797082306:layer:instana-nodejs-arm64:123 5.0.2
ap-southeast-5 arn:aws:lambda:ap-southeast-5:410797082306:layer:instana-nodejs-arm64:80 5.0.2
ap-southeast-6 arn:aws:lambda:ap-southeast-6:410797082306:layer:instana-nodejs-arm64:18 5.0.2
ap-southeast-7 arn:aws:lambda:ap-southeast-7:410797082306:layer:instana-nodejs-arm64:53 5.0.2
ca-central-1 arn:aws:lambda:ca-central-1:410797082306:layer:instana-nodejs-arm64:162 5.0.2
ca-west-1 arn:aws:lambda:ca-west-1:410797082306:layer:instana-nodejs-arm64:107 5.0.2
cn-north-1 arn:aws-cn:lambda:cn-north-1:107998019096:layer:instana-nodejs-arm64:72 5.0.1
cn-northwest-1 arn:aws-cn:lambda:cn-northwest-1:107998019096:layer:instana-nodejs-arm64:78 5.0.1
eu-central-1 arn:aws:lambda:eu-central-1:410797082306:layer:instana-nodejs-arm64:159 5.0.2
eu-central-2 arn:aws:lambda:eu-central-2:410797082306:layer:instana-nodejs-arm64:120 5.0.2
eu-north-1 arn:aws:lambda:eu-north-1:410797082306:layer:instana-nodejs-arm64:159 5.0.2
eu-south-1 arn:aws:lambda:eu-south-1:410797082306:layer:instana-nodejs-arm64:120 5.0.2
eu-south-2 arn:aws:lambda:eu-south-2:410797082306:layer:instana-nodejs-arm64:120 5.0.2
eu-west-1 arn:aws:lambda:eu-west-1:410797082306:layer:instana-nodejs-arm64:159 5.0.2
eu-west-2 arn:aws:lambda:eu-west-2:410797082306:layer:instana-nodejs-arm64:159 5.0.2
eu-west-3 arn:aws:lambda:eu-west-3:410797082306:layer:instana-nodejs-arm64:159 5.0.2
il-central-1 arn:aws:lambda:il-central-1:410797082306:layer:instana-nodejs-arm64:118 5.0.2
me-central-1 arn:aws:lambda:me-central-1:410797082306:layer:instana-nodejs-arm64:120 5.0.2
me-south-1 arn:aws:lambda:me-south-1:410797082306:layer:instana-nodejs-arm64:120 5.0.2
mx-central-1 arn:aws:lambda:mx-central-1:410797082306:layer:instana-nodejs-arm64:51 5.0.2
sa-east-1 arn:aws:lambda:sa-east-1:410797082306:layer:instana-nodejs-arm64:159 5.0.2
us-east-1 arn:aws:lambda:us-east-1:410797082306:layer:instana-nodejs-arm64:159 5.0.2
us-east-2 arn:aws:lambda:us-east-2:410797082306:layer:instana-nodejs-arm64:155 5.0.2
us-west-1 arn:aws:lambda:us-west-1:410797082306:layer:instana-nodejs-arm64:159 5.0.2
us-west-2 arn:aws:lambda:us-west-2:410797082306:layer:instana-nodejs-arm64:159 5.0.2

SSM 지원

레이어 99 버전에서 사용 가능 instana-nodejs/@instana/aws-lambda@1.138.0.

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 환경 변수가 무시됩니다. 람다 함수의 수명이 짧은 경우 함수가 종료되기 전에 SSM 가져오기가 완료되지 않을 수 있습니다. 이러한 경우 Instana 에이전트 키가 검색되지 않을 수 있습니다. 이 문제를 방지하려면 환경 변수 INSTANA_AGENT_KEY를 통해 직접 키를 제공하세요.

람다 함수에서 Instana API 사용

Lambda 코드에서 전체 Instana API 에 접근하고 사용할 수 있습니다. 이는 일반적인 Node.js@instana/collector애플리케이션에서 사용하는 것과 동일합니다.

Instana Node.js 람다 레이어와 자동 줄 바꿈 핸들러를 사용하는 경우 코드에 다음 줄을 추가해야 합니다:

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

수동 래핑을 사용하는 경우 람다 핸들러 파일에 해당 줄이 이미 있습니다.

참고: Instana Node.js 람다 레이어를 사용하는 경우 @instana/aws-lambda 패키지를 package.json 파일에 종속성으로 추가하지 마세요. 이 패키지는 Instana Node.js 람다 레이어에서 제공합니다. 람다 레이어를 사용하면서 종속성으로 추가하는 것은 지원되지 않습니다.

람다 함수 코드가 여러 소스 파일로 구성되어 있는 경우 다른 소스 코드 파일에 const instana = require('@instana/aws-lambda'); 문을 추가하여 해당 파일에서 Instana Node.js API에 액세스할 수도 있습니다.

추가 환경 변수

이름 기본값 설명
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 백엔드로 데이터를 전송하는 데 걸리는 시간(밀리초)입니다.