Lambda 지속성 함수 테스트
지속성 실행 테스트 SDK를 사용하여 로컬 및 클라우드 모두에서 실행을 실행하고 검사합니다. 테스트 작성, 어설션, 클라우드 러너, SAM CLI 통합, 전체 예제는 AWS 지속성 실행 SDK 개발자 안내서의 Testing을 참조하세요.
클라우드 테스트를 위한 IAM 권한
클라우드 러너 또는 sam remote invoke를 사용하여 배포된 지속성 함수를 테스트하는 경우 호출 보안 주체는 함수를 간접 호출하고 실행 기록을 읽을 수 있는 권한이 필요합니다. 테스트 호출자에게 다음 권한을 연결합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetDurableExecution", "lambda:GetDurableExecutionHistory" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name", "arn:aws:lambda:region:account-id:function:function-name:*" ] } ] }
리전, account-id, function-name을 해당 값으로 교체합니다.
실패 디버깅
테스트 실패 시 실행 결과를 검사하여 무엇이 잘못되었는지 파악합니다. 실행 상태를 확인하여 함수가 성공, 실패 또는 제한 시간 초과되었는지 여부를 확인합니다. 오류 메시지를 읽고 실패 원인을 파악합니다.
개별 작업 결과를 검사하여 동작이 예상과 다른 위치를 찾아냅니다. 단계 결과를 확인하여 생성된 값을 파악합니다. 작업 순서를 확인하여 예상 순서로 실행된 작업을 확인합니다. 작업 수를 계산하여 적절한 수의 단계, 대기 및 콜백이 생성되었는지 확인합니다.
공통의 문제로는 재생 시 다양한 결과를 생성하는 비결정론적 코드, 재생 도중 중단되는 전역 변수를 통한 공유 상태, 조건부 로직 오류로 인한 작업 누락 등이 있습니다. 표준 디버거 및 로깅을 사용하여 함수 코드를 단계별로 파악하고 실행 흐름을 추적합니다.
클라우드 테스트의 경우 CloudWatch Logs의 실행 내역을 검사하여 상세 작업 로그를 확인합니다. 트레이스를 사용하여 서비스 전반의 실행 흐름을 추적하고 병목 현상을 식별합니다.