기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
코드에서 Lambda 함수 실행 및 디버깅
AWS SAM 애플리케이션을 테스트할 때 Lambda 함수만 실행 및 디버깅하고 AWS SAM 템플릿에서 정의하는 다른 리소스를 제외하도록 선택할 수 있습니다. 이 접근 방식에는 CodeLens
에서 감지되는 Lambda 핸들러는 애플리케이션에 사용 중인 언어 및 런타임에 CodeLens 따라 달라집니다.
언어/런타임 | 표시기로 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, 3.12) |
이 함수에는 다음 기능도 포함합니다.
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 애플리케이션 디버깅 시 AWS Toolkit이 출력 패널에서 출력 채널로 선택됩니다.)