

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

# 코드에서 Lambda 함수 실행 및 디버깅
<a name="serverless-apps-run-debug-no-template"></a>

 AWS SAM 애플리케이션을 테스트할 때 Lambda 함수만 실행 및 디버깅하고 AWS SAM 템플릿이 정의하는 다른 리소스를 제외하도록 선택할 수 있습니다. 이는 [CodeLens](https://code.visualstudio.com/blogs/2017/02/12/code-lens-roundup) 기능을 사용하여 직접 호출할 수 있는 소스 코드에서 Lambda 함수 핸들러를 식별하는 방법입니다.

CodeLens로 감지되는 Lambda 핸들러는 애플리케이션에 사용 중인 언어와 런타임에 따라 다릅니다.


|  언어/런타임 | CodeLens로 식별되는 Lambda 함수 기준 | 
| --- | --- | 
|  C\$1 (dotnetcore2.1, 3.1; .NET 5.0  | 함수에는 다음 기능을 포함합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-vscode/latest/userguide/serverless-apps-run-debug-no-template.html) [ms-dotnettools.csharp 확장 프로그램](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp) (또는 C\$1 언어를 지원하는 모든 확장 프로그램)을 설치하고 활성화합니다. | 
|  JavaScript/TypeScript (Node.js 12.x, 14.x)  |  함수에는 다음 기능도 포함합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-vscode/latest/userguide/serverless-apps-run-debug-no-template.html)  | 
|  Python (3.7, 3.8, 3.9, 3.10, 3.11, 3.12)  |  이 함수에는 다음 기능도 포함합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-vscode/latest/userguide/serverless-apps-run-debug-no-template.html) [ms-python.python 확장 프로그램](http://marketplace.visualstudio.com/items?itemName=ms-python.python) (또는 Python 언어를 지원하는 모든 확장 프로그램)을 설치하고 활성화합니다. | 
|  Java (8, 8.al2, 11)  |  함수에는 다음 기능도 포함합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-vscode/latest/userguide/serverless-apps-run-debug-no-template.html) [redhat.java 확장 프로그램](https://marketplace.visualstudio.com/items?itemName=redhat.java) (또는 Java 언어를 지원하는 모든 확장 프로그램)을 설치하고 활성화합니다. 사용 중인 Java 런타임이 무엇이든 확장 프로그램에 Java 11이 설치되어 있어야 합니다. [vscjava.vscode-java-debug](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-debug) 확장 프로그램 (또는 Java debugger를 지원하는 모든 확장 프로그램)을 설치하고 활성화합니다.  | 
|  Go (1.x)  |  이 함수에는 다음 기능도 포함합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-vscode/latest/userguide/serverless-apps-run-debug-no-template.html) [golang.go 확장 프로그램](https://marketplace.visualstudio.com/items?itemName=golang.Go)이 설치, 구성 및 활성화되어 있습니다. | 

# 애플리케이션 코드에서 직접 서버리스 애플리케이션을 실행하고 디버깅하려면




1. VS Code 파일 탐색기에서 애플리케이션 파일을 보려면 **View**, **Explorer**를 선택합니다.

1. 애플리케이션 폴더(예: my-sample-app)에서 함수 폴더(hello-world)를 확장하여 `app.js` 파일을 엽니다.

1. 적합한 Lambda 함수 핸들러를 식별하는 CodeLens에서 `Add Debug Configuration`을 선택합니다.  
![\[Lambda 함수 핸들러에 대한 CodeLens에서 디버그 구성 추가 옵션에 액세스합니다.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-vscode/latest/userguide/images/sam-codelens-lambda.png)

1. **Command Palette** AWS SAM 애플리케이션을 실행할 런타임을 선택합니다.

1. `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"` 옵션은 페이로드를 정의합니다.  
![\[Lambda 함수를 직접 호출하도록 launch.json 파일을 구성합니다.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-vscode/latest/userguide/images/direct_invoke_config_updated_with_payload_field.png)

   `launch.json` 파일의 해당 항목 및 기타 항목에 대한 자세한 내용은 [서버리스 애플리케이션 디버깅을 위한 구성 옵션](serverless-apps-run-debug-config-ref.md) 섹션을 참조하세요.

1. 

   디버그 구성이 만족스럽다면 **RUN** 옆에 있는 녹색 재생 화살표를 선택하여 디버깅을 시작합니다.

   디버깅 세션이 시작되면 **DEBUG CONSOLE** 패널에 디버깅 출력이 표시되고 Lambda 함수에서 반환된 모든 값이 표시됩니다. ( AWS SAM 애플리케이션을 디버깅할 때 **AWS Toolkit**이 **출력** 패널에서 **출력** 채널로 선택됩니다.)