AWS Python용 람다 원시 추적

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

자세한 내용은 AWS 람다 추적을 참조하세요.

지원되는 런타임

  • Python 3.13
  • Python 3.12
  • Python 3.11
  • Python 3.10
  • Python 3.9
참고: 2024년 10월 14일부터 AWS Lambda는 더 이상 Lambda 함수에서 사용하는 Python 3.8 런타임에 보안 패치 및 기타 업데이트를 적용하지 않습니다. Python 3.8 을 사용하는 함수는 더 이상 기술 지원을 받을 수 없으며, Python 3.8 런타임을 사용하는 새 Lambda 함수를 만들 수 없습니다.

AWS 람다 함수 구성

다음 설정 옵션 중 하나를 사용하여 람다 함수 추적을 활성화할 수 있습니다:

Instana 람다 레이어 사용

AWS 웹 콘솔을 통해 Python Lambda 함수 추적을 활성화하려면 다음 단계를 수행합니다:

1단계. 함수에 Instana Lambda 레이어 추가하기

  1. 람다 함수에 대한 구성 페이지에서 레이어 상자를 클릭합니다.
    그림 1. 람다 레이어
    람다 레이어
  2. 레이어 상자에서 레이어 추가를 클릭합니다.
    그림 2. 계층 추가
    계층 추가
  3. 새 페이지가 열리면 레이어 소스로 ARN 지정 옵션을 선택합니다. ARN 지정 필드에 해당 지역과 일치하는 Instana Lambda 레이어의 ARN을 복사하여 붙여넣은 다음 추가를 클릭합니다. Instana 람다 레이어 섹션에서 Instana 람다 레이어에 적합한 ARN을 찾을 수 있습니다.
그림 3. Instana 추가 Python 레이어
Instana Python 레이어 추가

2단계. 람다 핸들러 구성

람다 핸들러를 instana.lambda_handler 로 설정합니다. 기능 구성 페이지에서 런타임 설정 섹션으로 이동하여 편집을 클릭합니다.

그림 4. 런타임 설정 편집
런타임 설정 편집

핸들러 필드에 instana.lambda_handler 을 입력한 다음 Save 을 클릭합니다.

그림 5. 런타임 설정 저장
런타임 설정 저장

런타임의 기본 핸들러 대신 사용자 정의 핸들러 값을 사용하는 경우, 환경 변수 LAMBDA_HANDLER 에 핸들러를 지정하여 Instana 람다 레이어에 알립니다. 예를 들어 핸들러가 myModule.myHandler 인 경우 환경 변수 LAMBDA_HANDLERmyModule.myHandler 로 설정합니다. 설정해야 하는 다른 환경 변수에 대해서는 다음 섹션을 참조하세요.

참고: Lambda 구성 페이지에 Lambda can't find the file instana.lambda_handler. 와 같은 경고가 표시될 수 있습니다. 이 메시지는 나중에 구성 페이지로 돌아올 때 표시될 수도 있습니다. 핸들러가 Instana Lambda 레이어에 포함되어 있으므로 이 경고를 무시할 수 있지만 AWS Lambda 구성 페이지에서는 이를 고려하지 않습니다.

3단계. 환경 변수 구성

다음 환경 변수를 추가하십시오.

  • INSTANA_ENDPOINT_URL: 서버리스 모니터링 엔드포인트. https://serverless-로 시작하는 리젼에 대해 올바른 값을 사용하는지 확인하십시오.
  • INSTANA_AGENT_KEY: 에이전트 키.
  • LAMBDA_HANDLER: 기본 핸들러를 사용하지 않는 경우 사용자 지정 핸들러 lambda_function.lambda_handler.

Instana 설치에서 이러한 환경 변수에 대한 올바른 값을 찾을 수도 있습니다. 데이터 소스 > 에이전트 설치 > AWS Lambda로 이동합니다.

4단계. AWS 명령줄 인터페이스(CLI) 사용

다음 AWS 관리 도구 중 하나를 사용하여 Lambda 함수 추적을 활성화할 수도 있습니다:

다음 예는 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.lambda_handler \
  --environment ""Variables={INSTANA_ENDPOINT_URL=... , INSTANA_AGENT_KEY=... , ...}""
 

instana 패키지를 수동으로 설치하기

Instana Lambda 레이어를 사용하는 대신 Instana Python 트레이서 패키지를 수동으로 설치하도록 선택할 수도 있습니다. 이 옵션은 FedRAMP-compliant 환경과 같이 제한된 환경에 적합합니다.

Python 람다 함수 추적을 사용하려면 다음 단계를 완료하세요:

  1. Instana Python 트레이서 패키지를 함수 프로젝트에 종속성으로 추가합니다. [1]
  2. Lambda 핸들러를 다음으로 설정합니다. instana.lambda_handler Lambda 핸들러 구성 섹션에 설명된 대로입니다.
  3. 람다 함수에 대해 다음 환경 변수를 구성합니다:
    • INSTANA_ENDPOINT_URL : 서버리스 모니터링 엔드포인트. https://serverless- 로 시작하는 지역에 맞는 올바른 값을 사용해야 합니다.
    • INSTANA_AGENT_KEY : 상담원 키.
    • LAMBDA_HANDLER : 기본 핸들러를 사용하지 않는 경우 사용자 지정 핸들러 lambda_function.lambda_handler.

Instana 람다 레이어

Python 에 대한 AWS Lambda 계층의 최신 버전의 ARN은 지역별로 다음과 같습니다.

지역 ARN
af-south-1 arn:aws:lambda:af-south-1:410797082306:layer:instana-python:89
ap-east-1 arn:aws:lambda:ap-east-1:410797082306:layer:instana-python:89
ap-northeast-1 arn:aws:lambda:ap-northeast-1:410797082306:layer:instana-python:89
ap-northeast-2 arn:aws:lambda:ap-northeast-2:410797082306:layer:instana-python:89
ap-northeast-3 arn:aws:lambda:ap-northeast-3:410797082306:layer:instana-python:89
ap-south-1 arn:aws:lambda:ap-south-1:410797082306:layer:instana-python:89
ap-south-2 arn:aws:lambda:ap-south-2:410797082306:layer:instana-python:89
ap-southeast-1 arn:aws:lambda:ap-southeast-1:410797082306:layer:instana-python:89
ap-southeast-2 arn:aws:lambda:ap-southeast-2:410797082306:layer:instana-python:89
ap-southeast-3 arn:aws:lambda:ap-southeast-3:410797082306:layer:instana-python:89
ap-southeast-4 arn:aws:lambda:ap-southeast-4:410797082306:layer:instana-python:89
ap-southeast-5 arn:aws:lambda:ap-southeast-5:410797082306:layer:instana-python:89
ap-southeast-7 arn:aws:lambda:ap-southeast-7:410797082306:layer:instana-python:89
ca-central-1 arn:aws:lambda:ca-central-1:410797082306:layer:instana-python:89
ca-west-1 arn:aws:lambda:ca-west-1:410797082306:layer:instana-python:89
cn-north-1 arn:aws-cn:lambda:cn-north-1:107998019096:layer:instana-python:89
cn-northwest-1 arn:aws-cn:lambda:cn-northwest-1:107998019096:layer:instana-python:89
eu-central-1 arn:aws:lambda:eu-central-1:410797082306:layer:instana-python:89
eu-central-2 arn:aws:lambda:eu-central-2:410797082306:layer:instana-python:89
eu-north-1 arn:aws:lambda:eu-north-1:410797082306:layer:instana-python:89
eu-south-1 arn:aws:lambda:eu-south-1:410797082306:layer:instana-python:89
eu-south-2 arn:aws:lambda:eu-south-2:410797082306:layer:instana-python:89
eu-west-1 arn:aws:lambda:eu-west-1:410797082306:layer:instana-python:89
eu-west-2 arn:aws:lambda:eu-west-2:410797082306:layer:instana-python:89
eu-west-3 arn:aws:lambda:eu-west-3:410797082306:layer:instana-python:89
il-central-1 arn:aws:lambda:il-central-1:410797082306:layer:instana-python:89
me-central-1 arn:aws:lambda:me-central-1:410797082306:layer:instana-python:89
me-south-1 arn:aws:lambda:me-south-1:410797082306:layer:instana-python:89
sa-east-1 arn:aws:lambda:sa-east-1:410797082306:layer:instana-python:89
us-east-1 arn:aws:lambda:us-east-1:410797082306:layer:instana-python:89
us-east-2 arn:aws:lambda:us-east-2:410797082306:layer:instana-python:89
us-west-1 arn:aws:lambda:us-west-1:410797082306:layer:instana-python:89
us-west-2 arn:aws:lambda:us-west-2:410797082306:layer:instana-python:89

중국어 영역의 패턴은 arn:aws-cn:lambda:${region}:107998019096:layer:instana-python:${layer-version} 이고 나머지 영역의 패턴은 arn:aws:lambda:${region}:410797082306:layer:instana-python:${layer-version}입니다.

항상 최신 버전을 사용하고 정기적으로 사용 중인 계층 버전을 업데이트하여 계층의 새 버전을 공개할 때 제공하는 새 기능 및 수정사항을 활용하십시오.

문제점 해결

레이어 순서는 Instana 레이어 성능에 영향을 미칠 수 있습니다

Python 람다 함수에 여러 레이어를 추가하는 경우, 추가 순서는 Instana 레이어의 성능에 영향을 미칩니다. Instana 레이어가 올바르게 추적되도록 하려면 레이어 병합 순서의 마지막 위치(가장 높은 번호)에 레이어를 배치합니다.

그림 6. 레이어 병합 순서
레이어 병합 순서
  1. 공식 AWS Lambda 문서에 따라 종속성이 포함된.zip 배포 패키지를 만드세요.