기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
코드에서 Lambda 함수 실행 및 디버깅
AWS SAM 애플리케이션을 테스트 할 때 AWS SAM 템플릿으로 정의된 다른 리소스는 제외하고 Lambda 함수만 실행 및 디버깅하세요. 이는 CodeLens
CodeLens로 감지되는 Lambda 핸들러는 애플리케이션에 사용 중인 언어와 런타임에 따라 다릅니다.
언어/런타임 | CodeLens로 식별되는 Lambda 함수 기준 |
---|---|
C# (dotnetcore2.1, 3.1; .NET 5.0 |
함수에는 다음 기능을 포함합니다.
ms-dotnettools.csharp 확장 프로그램 |
JavaScript/TypeScript (Node.js 12.x, 14.x) |
함수에는 다음 기능도 포함합니다.
|
Python (3.7, 3.8, 3.9, 3.10, 3.11) |
함수에는 다음 기능도 포함합니다.
ms-python.python 확장 프로그램 |
Java (8, 8.al2, 11) |
함수에는 다음 기능도 포함합니다.
redhat.java 확장 프로그램 vscjava.vscode-java-debug |
Go (1.x) |
이 함수에는 다음 기능도 포함합니다.
golang.go 확장 프로그램 |
애플리케이션 코드에서 직접 서버리스 애플리케이션을 실행하고 디버깅하려면
-
VS Code 파일 탐색기에서 애플리케이션 파일을 보려면 View, Explorer를 선택합니다.
-
애플리케이션 폴더(예: my-sample-app)에서 함수 폴더(hello-world)를 확장하여
app.js
파일을 엽니다. -
적합한 Lambda 함수 핸들러를 식별하는 CodeLens에서
Add Debug Configuration
을 선택합니다. -
Command Palette AWS SAM 애플리케이션을 실행할 런타임을 선택합니다.
-
launch.json
파일의 편집기에서 다음 구성의 속성 값을 수정하거나 확인합니다.-
"name"
– Run 보기의 Configuration 드롭다운 필드에 표시할 알아보기 쉬운 이름을 입력합니다. -
"target"
- Lambda 함수 핸들러가 바로 호출되도록 값이"code"
인지 확인합니다. -
"lambdaHandler"
– Lambda가 함수를 호출하는 코드 내에 메서드 이름을 입력합니다. 예를 들어 JavaScript로 작성된 애플리케이션의 경우 기본값은app.lambdaHandler
입니다. -
"projectRoot"
- Lambda 함수가 포함된 애플리케이션 파일의 경로를 입력합니다. -
"runtime"
- Lambda 실행 환경에 유효한 런타임을 입력하거나 확인합니다(예:"nodejs.12x"
). -
"payload"
- 다음 옵션 중 하나를 선택하여 Lambda 함수에 입력으로 제공할 이벤트 페이로드를 정의합니다.-
"json"
: 이벤트 페이로드를 정의하는 JSON 형식의 키 값 페어를 정의합니다. -
"path"
: 이벤트 페이로드로 사용되는 파일의 경로입니다.
아래 예제에서
"json"
옵션은 페이로드를 정의합니다. -
launch.json
파일의 해당 항목 및 기타 항목에 대한 자세한 내용은 서버리스 애플리케이션 디버깅을 위한 구성 옵션 섹션을 참조하세요. -
-
디버그 구성이 만족스럽다면 RUN 옆에 있는 녹색 재생 화살표를 선택하여 디버깅을 시작합니다.
디버깅 세션이 시작되면 DEBUG CONSOLE 패널에 디버깅 출력이 표시되고 Lambda 함수에서 반환된 모든 값이 표시됩니다. (AWS SAM 애플리케이션을 디버깅할 때, Output 패널의 Output 채널을 AWS 도구 키트로 선택합니다.)