Lambda durable function 테스트하기
Lambda durable function 테스트하기
Durable Execution 테스트 SDK를 사용해 로컬과 클라우드 양쪽에서 실행을 실행하고 검사해요. 테스트 작성, 단언(assertion), 클라우드 러너, SAM CLI 통합, 완전한 예시는 AWS Durable Execution SDK 개발자 안내서의 Testing을 참고하세요.
본문
클라우드 테스트를 위한 IAM 권한
클라우드 러너나 sam remote invoke를 사용해 배포된 durable function을 테스트할 때, 호출 주체(principal)는 함수를 호출하고 실행 기록을 읽을 권한이 필요해요. 테스트 호출자에 다음 권한을 연결하세요:
{
"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:*"
]
}
]
}
region, account-id, function-name을 여러분의 값으로 교체하세요.
실패 디버깅
테스트가 실패하면 실행 결과를 검사해 무엇이 잘못되었는지 이해하세요. 함수가 성공했는지, 실패했는지, 타임아웃되었는지 확인하려면 실행 상태를 확인합니다. 실패 원인을 이해하려면 오류 메시지를 읽어 보세요.
동작이 기대치와 어디에서 달라졌는지 찾으려면 개별 작업 결과를 검사하세요. 어떤 값이 생성되었는지 확인하려면 스텝 결과를 확인합니다. 작업이 예상된 순서로 실행됐는지 확인하려면 작업 순서를 검증하세요. 올바른 수의 스텝, 대기, 콜백이 생성됐는지 확인하려면 작업을 세어 보세요.
일반적인 문제로는 재생 시 다른 결과를 만드는 비결정적 코드, 재생 중에 깨지는 전역 변수를 통한 공유 상태, 조건부 로직 오류로 인한 작업 누락 등이 있습니다. 표준 디버거와 로깅을 사용해 함수 코드를 단계별로 실행하고 실행 흐름을 추적하세요.
클라우드 테스트의 경우 CloudWatch Logs에서 실행 기록을 검사해 상세한 작업 로그를 확인할 수 있어요. 트레이싱을 사용해 서비스 전반의 실행 흐름을 추적하고 병목 현상을 식별하세요.