

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

# 를 사용하여 함수를 로컬로 디버깅 AWS SAM
<a name="serverless-sam-cli-using-debugging"></a>

다양한 AWS 도구 키트 및 디버거와 AWS SAM 함께를 사용하여 서버리스 애플리케이션을 로컬에서 테스트하고 디버깅할 수 있습니다. Lambda 함수의 단계별 디버깅을 사용하면 로컬 환경에서 코드 줄이나 명령을 한 번에 하나씩 실행하여 애플리케이션의 문제를 식별하고 수정할 수 있습니다.

로컬 단계별 디버깅을 수행하는 방법에는 중단점을 설정하고, 변수를 검사하고, 함수 코드를 한 번에 한 줄씩 실행하는 것이 포함됩니다. 로컬 단계별 디버깅을 사용하면 클라우드에서 발생할 수 있는 문제를 찾아 해결할 수 있어 피드백 루프가 강화됩니다.

 AWS 도구 키트를 사용하여 디버깅할 수 있으며 디버그 모드에서 AWS SAM 를 실행할 수도 있습니다. 자세한 내용은 이 섹션의 주제를 참조하세요.

## AWS 도구 키트 사용
<a name="serverless-sam-cli-using-aws-toolkits"></a>

AWS 도구 키트는 중단점 설정, 변수 검사, 한 번에 한 줄씩 함수 코드 실행과 같은 많은 일반적인 디버깅 작업을 수행할 수 있는 기능을 제공하는 통합 개발 환경(IDE) 플러그인입니다. AWS 도구 키트를 사용하면를 사용하여 구축된 서버리스 애플리케이션을 더 쉽게 개발, 디버깅 및 배포할 수 있습니다 AWS SAM. IDE에 통합된 Lambda 함수를 구축, 테스트, 디버깅, 배포 및 간접 호출할 수 있는 환경을 제공합니다.

사용할 수 있는 AWS 도구 키트에 대한 자세한 내용은 다음을 AWS SAM참조하세요.
+ [AWS Toolkit for Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/)
+ [AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/)
+ [AWS Toolkit for JetBrains](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/)

다양한 IDEs 및 런타임 조합으로 작동하는 다양한 AWS 도구 키트가 있습니다. 다음 표에는 AWS SAM 애플리케이션의 단계별 디버깅을 지원하는 일반적인 IDE/런타임 조합이 나열되어 있습니다.


| IDE | 런타임 | AWS 도구 키트 | 단계별 디버깅 지침 | 
| --- | --- | --- | --- | 
| Visual Studio Code |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/serverless-application-model/latest/developerguide/serverless-sam-cli-using-debugging.html)  | AWS Toolkit for Visual Studio Code | [사용자 가이드 AWS 서버리스 애플리케이션](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/serverless-apps.html) 내 AWS Toolkit for Visual Studio Code 를 이용한 작업  | 
| AWS Cloud9 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/serverless-application-model/latest/developerguide/serverless-sam-cli-using-debugging.html)  | AWS Cloud9, AWS 도구 키트가 활성화된 경우1 |  *AWS Cloud9 사용 설명서*[의 AWS 도구 키트를 사용하여 AWS 서버리스 애플리케이션 작업](https://docs.aws.amazon.com/cloud9/latest/user-guide/serverless-apps-toolkit.html).  | 
| WebStorm | Node.js | AWS Toolkit for JetBrains2 |  [https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html)내 로컬 함수 *AWS Toolkit for JetBrains실행(간접적으로 호출) 또는 디버깅*  | 
| PyCharm | Python | AWS Toolkit for JetBrains2 |  [https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html)내 로컬 함수 *AWS Toolkit for JetBrains실행(간접적으로 호출) 또는 디버깅*  | 
| Rider | .NET | AWS Toolkit for JetBrains2 |  [https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html)내 로컬 함수 *AWS Toolkit for JetBrains실행(간접적으로 호출) 또는 디버깅*  | 
| IntelliJ | Java | AWS Toolkit for JetBrains2 |  [https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html)내 로컬 함수 *AWS Toolkit for JetBrains실행(간접적으로 호출) 또는 디버깅*  | 
| GoLand | Go | AWS Toolkit for JetBrains2 |  [https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html)내 로컬 함수 *AWS Toolkit for JetBrains실행(간접적으로 호출) 또는 디버깅*  | 

**참고**:

1.  AWS Cloud9 를 사용하여 AWS SAM 애플리케이션을 단계별로 디버그하려면 AWS 도구 키트를 활성화해야 합니다. 자세한 내용은 *AWS Cloud9 사용 설명서*[의 AWS 도구 키트 활성화](https://docs.aws.amazon.com/cloud9/latest/user-guide/toolkit-welcome.html#access-toolkit)를 참조하세요.

1.  AWS Toolkit for JetBrains 를 사용하여 AWS SAM 애플리케이션을 단계별로 디버그하려면 먼저의 설치에 있는 지침에 따라 [애플리케이션을 설치하고 AWS Toolkit for JetBrains](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/setup-toolkit.html) 구성해야 합니다*AWS Toolkit for JetBrains*.

## 디버그 모드에서 AWS SAM 로컬로 실행
<a name="serverless-sam-cli-running-locally"></a>

 AWS 도구 키트와 통합하는 것 외에도 AWS SAM 디버그 모드에서를 실행하여 [ptvsd](https://pypi.org/project/ptvsd/) 또는 [delve](https://github.com/go-delve/delve)와 같은 타사 디버거에 연결할 수도 있습니다.

 AWS SAM 디버그 모드에서를 실행하려면 [sam local invoke](sam-cli-command-reference-sam-local-invoke.md) 또는 `-d` 옵션과 [sam local start-api](sam-cli-command-reference-sam-local-start-api.md) 함께 `--debug-port` 또는 명령을 사용합니다.

예제:

```
# Invoke a function locally in debug mode on port 5858
sam local invoke -d 5858 <function logical id>

# Start local API Gateway in debug mode on port 5858
sam local start-api -d 5858
```

**참고**  
`sam local start-api`을 사용하는 경우 로컬 API 게이트웨이 인스턴스는 모든 Lambda 함수를 노출합니다. 하지만 단일 디버그 포트를 지정할 수 있으므로 한 번에 하나의 함수만 디버깅할 수 있습니다. AWS SAMCLI가 포트에 바인딩하기 전에 API를 직접 호출해야 디버거가 연결할 수 있습니다.