콘솔에서 Lambda 함수 테스트하기
콘솔에서 Lambda 함수 테스트하기 (Testing Lambda functions in the console)
테스트 이벤트로 함수를 호출해 콘솔에서 Lambda 함수를 테스트할 수 있어요. 테스트 이벤트는 함수에 대한 JSON 입력이에요. 함수가 입력을 요구하지 않으면 이벤트는 빈 문서({})일 수 있어요.
콘솔에서 테스트를 실행하면 Lambda가 테스트 이벤트로 함수를 동기적으로 호출해요. 함수 런타임은 이벤트 JSON을 객체로 변환하고 처리하도록 코드의 핸들러 메서드에 전달해요.
본문
테스트 이벤트 만들기
콘솔에서 테스트하려면 먼저 비공개(private) 또는 공유 가능(shareable) 테스트 이벤트를 만들어야 해요.
테스트 이벤트로 함수 호출하기
함수를 테스트하려면
- Lambda 콘솔의 Functions 페이지를 엽니다.
- 테스트하려는 함수의 이름을 선택합니다.
- Test 탭을 선택합니다.
- Test event 아래에서 Create new event 또는 Edit saved event를 선택하고 사용할 저장된 이벤트를 선택합니다.
- (선택 사항) 이벤트 JSON용 Template을 선택합니다.
- Test를 선택합니다.
- 테스트 결과를 검토하려면 Execution result 아래에서 Details를 펼칩니다.
테스트 이벤트를 저장하지 않고 함수를 호출하려면 저장하기 전에 Test를 선택해요. 이렇게 하면 세션 기간 동안만 Lambda가 보존하는 저장되지 않은 테스트 이벤트가 만들어져요.
Node.js, Python, Ruby 런타임에서는 Code 탭에서도 저장된 테스트 이벤트와 저장되지 않은 테스트 이벤트에 접근할 수 있어요. TEST EVENTS 섹션으로 테스트를 만들고 편집·실행하세요.
비공개 테스트 이벤트 만들기
비공개 테스트 이벤트는 이벤트 작성자만 사용할 수 있으며, 사용에 추가 권한이 필요 없어요. 함수당 최대 10개의 비공개 테스트 이벤트를 만들고 저장할 수 있어요.
비공개 테스트 이벤트를 만들려면
- Lambda 콘솔의 Functions 페이지를 엽니다.
- 테스트하려는 함수의 이름을 선택합니다.
- Test 탭을 선택합니다.
- Test event 아래에서 다음을 수행합니다.
- Template을 선택합니다.
- 테스트의 Name을 입력합니다.
- 텍스트 입력 상자에 JSON 테스트 이벤트를 입력합니다.
- Event sharing settings 아래에서 Private을 선택합니다.
- Save changes를 선택합니다.
Node.js, Python, Ruby 런타임에서는 Code 탭에서도 테스트 이벤트를 만들 수 있어요.
공유 가능 테스트 이벤트 만들기
공유 가능 테스트 이벤트는 같은 AWS 계정의 다른 사용자와 공유할 수 있는 테스트 이벤트예요. 다른 사용자의 공유 가능 테스트 이벤트를 편집하고 그 이벤트로 함수를 호출할 수 있어요.
Lambda는 공유 가능 테스트 이벤트를 lambda-testevent-schemas라는 Amazon EventBridge(CloudWatch Events) 스키마 레지스트리의 스키마로 저장해요. Lambda가 이 레지스트리를 사용해 만든 공유 가능 테스트 이벤트를 저장·호출하므로, 이 레지스트리를 편집하거나 lambda-testevent-schemas 이름으로 레지스트리를 만들지 않는 것을 권장해요.
공유 가능 테스트 이벤트를 보고, 공유하고, 편집하려면 다음 EventBridge(CloudWatch Events) 스키마 레지스트리 API 작업에 대한 권한이 모두 있어야 해요.
- schemas.CreateRegistry
- schemas.CreateSchema
- schemas.DeleteSchema
- schemas.DeleteSchemaVersion
- schemas.DescribeRegistry
- schemas.DescribeSchema
- schemas.GetDiscoveredSchema
- schemas.ListSchemaVersions
- schemas.UpdateSchema
공유 가능 테스트 이벤트에 대한 편집 저장은 그 이벤트를 덮어쓴다는 점을 참고하세요.
공유 가능 테스트 이벤트를 만들거나 편집·볼 수 없다면 계정에 이 작업에 필요한 권한이 있는지 확인하세요. 권한이 있는데도 공유 가능 테스트 이벤트에 접근할 수 없다면 EventBridge(CloudWatch Events) 레지스트리 접근을 제한하는 리소스 기반 정책이 있는지 확인하세요.
공유 가능 테스트 이벤트를 만들려면
- Lambda 콘솔의 Functions 페이지를 엽니다.
- 테스트하려는 함수의 이름을 선택합니다.
- Test 탭을 선택합니다.
- Test event 아래에서 다음을 수행합니다.
- Template을 선택합니다.
- 테스트의 Name을 입력합니다.
- 텍스트 입력 상자에 JSON 테스트 이벤트를 입력합니다.
- Event sharing settings 아래에서 Shareable을 선택합니다.
- Save changes를 선택합니다.
AWS Serverless Application Model과 함께 공유 가능 테스트 이벤트 사용
AWS SAM을 사용해 공유 가능 테스트 이벤트를 호출할 수 있어요. AWS Serverless Application Model 개발자 안내서의 sam remote test-event를 참고하세요.
공유 가능 테스트 이벤트 스키마 삭제
공유 가능 테스트 이벤트를 삭제하면 Lambda가 이를 lambda-testevent-schemas 레지스트리에서 제거해요. 레지스트리에서 마지막 공유 가능 테스트 이벤트를 제거하면 Lambda는 레지스트리를 삭제해요.
함수를 삭제해도 Lambda는 연결된 공유 가능 테스트 이벤트 스키마를 삭제하지 않아요. 이런 리소스는 EventBridge(CloudWatch Events) 콘솔에서 수동으로 정리해야 해요.