AWS SAM CLI를 사용하여 기존 Lambda 함수에서 Lambda Insights 활성화
다음 단계에 따라 AWS SAM AWS CLI를 사용하여 기존 Lambda 함수에서 Lambda Insights를 사용 설정할 수 있습니다.
최신 버전의 AWS SAM CLI를 아직 설치하지 않은 경우 먼저, 설치하거나 업그레이드해야 합니다. 자세한 내용은 AWS SAM CLI 설치 단원을 참조하세요.
1단계: 계층 설치
Lambda Insights 익스텐션을 모든 Lambda 함수에서 사용할 수 있도록 하려면 Lambda Insights 계층의 ARN을 사용하여 SAM 템플릿의 Globals
섹션에 Layers
속성을 추가합니다. 아래 예에서는 초기 Lambda Insights 릴리스의 계층을 사용합니다. 최신 릴리스 버전의 Lambda Insights 익스텐션 계층은 사용 가능한 Lambda Insights 익스텐션 버전 단원을 참조하세요.
Globals: Function: Layers: - !Sub "arn:aws:lambda:${AWS::Region}:580247275435:layer:LambdaInsightsExtension:14"
단일 함수에 대해서만 이 계층을 사용하려면 이 예와 같이 함수에 Layers
속성을 추가합니다.
Resources: MyFunction: Type: AWS::Serverless::Function Properties: Layers: - !Sub "arn:aws:lambda:${AWS::Region}:580247275435:layer:LambdaInsightsExtension:14"
2단계: 관리형 정책 추가
각 함수에 대해 [CloudWatchLambdaInsightsExecutionRolePolicy] IAM 정책을 추가합니다.
AWS SAM은 글로벌 정책을 지원하지 않으므로 이 예와 같이 각 함수에서 개별적으로 정책을 사용 설정해야 합니다. 글로벌에 대한 자세한 내용은 Globals 섹션
Resources: MyFunction: Type: AWS::Serverless::Function Properties: Policies: - CloudWatchLambdaInsightsExecutionRolePolicy
로컬에서 호출
AWS SAM CLI는 Lambda 익스텐션을 지원합니다. 그러나 로컬에서 실행되는 모든 호출은 런타임 환경을 재설정합니다. 런타임이 종료 이벤트 없이 다시 시작되기 때문에 로컬 호출에서 Lambda Insights 데이터를 사용할 수 없습니다. 자세한 내용은 릴리스 1.6.0 - AWS Lambda 익스텐션의 로컬 테스트를 위한 지원 추가
문제 해결
Lambda Insights 설치 문제를 해결하려면 Lambda 함수에 다음 환경 변수를 추가하여 디버그 로깅을 사용 설정합니다.
Resources: MyFunction: Type: AWS::Serverless::Function Properties: Environment: Variables: LAMBDA_INSIGHTS_LOG_LEVEL: info