내구성 함수 테스트 및 디버깅 - AWS Serverless Application Model

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

내구성 함수 테스트 및 디버깅

내구성 있는 함수를 로컬에서 테스트하고 디버깅하는 작업은 체크포인트 및 재생을 자동으로 지원하는 일반 Lambda 함수와 비슷하게 작동합니다. 이 가이드에서는 일반적인 테스트 시나리오와 문제 해결 기법을 다룹니다.

로컬 테스트 워크플로

내구성이 뛰어난 함수를 로컬에서 테스트할 때 워크플로는 일반 Lambda 함수와 다릅니다.

내구성 있는 함수 테스트 워크플로
  1. 애플리케이션을 빌드합니다.

    $ sam build
  2. 내구성 있는 함수를 호출합니다.

    $ sam local invoke MyDurableFunction --durable-execution-name test
  3. 필요한 경우 실행 기록을 확인합니다.

    $ sam local execution history execution-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"}

이 함수를 로컬에서 호출하면 대기 기간이 자동으로 처리됩니다.

콜백 시나리오 테스트

외부 콜백을 기다리는 함수의 경우:

  1. 콜백을 기다리는 내구성 함수 시작

  2. 다른 터미널에서 콜백을 해결합니다.

    $ sam local callback succeed callback-id
  3. 함수 재개 실행 관찰

문제 해결

내구성 함수가 제대로 실행되지 않음

문제: 함수가 내구성 있는 함수로 동작하지 않습니다.

솔루션:

  • SAM 템플릿에 DurableConfig이 설정되어 있는지 확인

  • 함수 코드가 내구성 있는 함수 SDK 메서드(예: context.wait())를 사용하는지 확인합니다.

  • 지원되는 런타임(TypeScript, JavaScript, Python)을 사용하고 있는지 확인합니다.

실행 기록을 검색할 수 없음

문제: local execution history 명령이 결과를 반환하지 않습니다.

솔루션:

  • 실행 ID가 올바른지 확인

  • 함수가 한 번 이상 호출되었는지 확인

콜백 명령이 작동하지 않음

문제: 콜백 명령이 보류 중인 작업을 해결하지 못합니다.

솔루션:

  • 콜백 ID가 올바른지 확인

  • 함수가 실제로 콜백을 기다리고 있는지 확인합니다.

  • 올바른 콜백 명령 구문을 사용하고 있는지 확인

디버깅 팁

  • 실행 기록 사용 - 실행 기록을 검토하여 내구성 있는 함수의 흐름을 이해합니다.

  • 점진적으로 테스트 - 복잡한 로직을 추가하기 전에 간단한 대기 작업으로 시작

  • 상세 로깅 사용 - 세부 로깅을 활성화하여 실행 흐름 추적

자세히 알아보기

테스트 및 디버깅에 대한 자세한 내용은 다음을 참조하세요.