기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
내구성 함수 테스트 및 디버깅
내구성 있는 함수를 로컬에서 테스트하고 디버깅하는 작업은 체크포인트 및 재생을 자동으로 지원하는 일반 Lambda 함수와 비슷하게 작동합니다. 이 가이드에서는 일반적인 테스트 시나리오와 문제 해결 기법을 다룹니다.
로컬 테스트 워크플로
내구성이 뛰어난 함수를 로컬에서 테스트할 때 워크플로는 일반 Lambda 함수와 다릅니다.
내구성 있는 함수 테스트 워크플로
-
애플리케이션을 빌드합니다.
$sam build -
내구성 있는 함수를 호출합니다.
$sam local invoke MyDurableFunction --durable-execution-name test -
필요한 경우 실행 기록을 확인합니다.
$sam local execution historyexecution-id
일반적인 테스트 시나리오
체크포인트 동작 테스트
함수가 상태를 올바르게 체크포인트하는지 테스트하려면:
# Example Python durable function def handler(event, context): # This will create a checkpoint context.wait(10) # Wait 10 seconds # Function resumes here after wait return {"message": "Function resumed after wait"}
이 함수를 로컬에서 호출하면 대기 기간이 자동으로 처리됩니다.
콜백 시나리오 테스트
외부 콜백을 기다리는 함수의 경우:
-
콜백을 기다리는 내구성 함수 시작
-
다른 터미널에서 콜백을 해결합니다.
$sam local callback succeedcallback-id -
함수 재개 실행 관찰
문제 해결
내구성 함수가 제대로 실행되지 않음
문제: 함수가 내구성 있는 함수로 동작하지 않습니다.
솔루션:
-
SAM 템플릿에
DurableConfig이 설정되어 있는지 확인 -
함수 코드가 내구성 있는 함수 SDK 메서드(예:
context.wait())를 사용하는지 확인합니다. -
지원되는 런타임(TypeScript, JavaScript, Python)을 사용하고 있는지 확인합니다.
실행 기록을 검색할 수 없음
문제: local execution history 명령이 결과를 반환하지 않습니다.
솔루션:
-
실행 ID가 올바른지 확인
-
함수가 한 번 이상 호출되었는지 확인
콜백 명령이 작동하지 않음
문제: 콜백 명령이 보류 중인 작업을 해결하지 못합니다.
솔루션:
-
콜백 ID가 올바른지 확인
-
함수가 실제로 콜백을 기다리고 있는지 확인합니다.
-
올바른 콜백 명령 구문을 사용하고 있는지 확인
디버깅 팁
-
실행 기록 사용 - 실행 기록을 검토하여 내구성 있는 함수의 흐름을 이해합니다.
-
점진적으로 테스트 - 복잡한 로직을 추가하기 전에 간단한 대기 작업으로 시작
-
상세 로깅 사용 - 세부 로깅을 활성화하여 실행 흐름 추적
자세히 알아보기
테스트 및 디버깅에 대한 자세한 내용은 다음을 참조하세요.
-
sam local invoke를 사용한 테스트 소개 - 로컬 호출 설명서
-
sam local execution history - 실행 기록