CloudWatch Lambda Insights 문제 해결 및 알려진 문제
문제 해결을 위한 첫 번째 단계는 Lambda Insights 익스텐션에 디버그 로깅을 사용 설정하는 것입니다. 이렇게 하려면 Lambda 함수에서 환경 변수 LAMBDA_INSIGHTS_LOG_LEVEL=info
를 설정합니다. 자세한 내용은 AWS Lambda 환경 변수 사용 단원을 참조하세요.
익스텐션은 함수와 동일한 로그 그룹에 로그를 내보냅니다(/aws/lambda/
. 해당 로그를 검토하여 오류가 설정 문제와 관련이 있을 수 있는지 확인합니다.function-name
)
Lambda Insights의 지표가 표시되지 않음
표시될 것으로 예상했던 Lambda Insights 지표가 표시되지 않으면 다음 가능성을 확인하세요.
지표가 지연될 뿐일 수 있음 - 함수가 아직 호출되지 않았거나 데이터가 아직 플러시되지 않은 경우 CloudWatch에 지표가 표시되지 않습니다. 자세한 내용은 이 단원의 뒷부분에 있는 알려진 문제를 참조하세요.
Lambda 함수에 올바른 권한이 있는지 확인 - [CloudWatchLambdaInsightsExecutionRolePolicy] IAM 정책이 함수의 실행 역할에 할당되었는지 확인합니다.
Lambda 런타임 확인 - Lambda Insights는 특정 Lambda 런타임만 지원합니다. 지원되는 런타임 목록은 Lambda Insights 단원을 참조하세요.
예를 들어 Java 8에서 Lambda Insights를 사용하려면
java8
런타임이 아니라java8.al2
런타임을 사용해야 합니다.네트워크 액세스 확인 - Lambda 함수가 인터넷에 액세스할 수 없는 VPC 프라이빗 서브넷에 있을 수 있으며, CloudWatch Logs에 대해 구성된 VPC 엔드포인트가 없습니다. 이 문제를 디버그하기 위해 환경 변수
LAMBDA_INSIGHTS_LOG_LEVEL=info
를 설정할 수 있습니다.
알려진 문제
데이터 지연은 20분까지 걸릴 수 있습니다. 함수 핸들러가 완료되면 Lambda는 샌드박스를 고정하며 이에 따라 Lambda Insights 익스텐션도 고정됩니다. 함수가 실행되는 동안에는 함수 TPS를 기반으로 적응형 배치 처리 전략을 사용하여 데이터를 출력할 수 있습니다. 그러나 함수 호출이 장기간 중지되는데 버퍼에 여전히 이벤트 데이터가 있는 경우 이 데이터는 Lambda가 유휴 샌드박스를 종료할 때까지 지연될 수 있습니다. Lambda가 샌드박스를 종료하면 버퍼링된 데이터를 플러시할 수 있습니다.