AWS SAM에서 로컬로 함수 디버깅 - AWS Serverless Application Model

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

AWS SAM에서 로컬로 함수 디버깅

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

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

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

AWS 도구 키트 사용

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

AWS과 함께 사용할 수 있는 AWS SAM 도구 키트에 대한 자세한 내용은 다음을 참조하세요.

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

IDE 런타임 AWS 도구 키트 단계별 디버깅 지침
Visual Studio Code
  • Node.js

  • Python

  • .NET

  • Java

  • Go

AWS Toolkit for Visual Studio Code 사용자 가이드AWS 서버리스 애플리케이션AWS Toolkit for Visual Studio Code를 이용한 작업
AWS Cloud9
  • Node.js

  • Python

AWS Cloud9, AWS 도구 키트가 활성화된 상태1

사용자 가이드AWS 내에서 AWS 도구 키트를 사용하는 AWS Cloud9서버리스 애플리케이션으로 작업합니다.

WebStorm Node.js AWS Toolkit for JetBrains2

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내 로컬 함수 AWS Toolkit for JetBrains실행(간접적으로 호출) 또는 디버깅

Rider .NET AWS Toolkit for JetBrains2

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내 로컬 함수 AWS Toolkit for JetBrains실행(간접적으로 호출) 또는 디버깅

GoLand Go AWS Toolkit for JetBrains2

https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html내 로컬 함수 AWS Toolkit for JetBrains실행(간접적으로 호출) 또는 디버깅

참고:

  1. AWS Cloud9애플리케이션AWS SAM을 단계별로 디버깅하는 데 사용하려면 AWS 도구 키트을 활성화해야 합니다. 자세한 내용은 사용자 가이드AWS에서 도구 키트AWS Cloud9 활성화를 참조하세요.

  2. AWS Toolkit for JetBrains단계별 디버그 AWS SAM 응용 프로그램을 사용하려면 먼저 내의 설치AWS Toolkit for JetBrains에 있는 지침에 따라 AWS Toolkit for JetBrains 응용 프로그램을 설치하고 구성해야 합니다.

디버그 모드에서 AWS SAM을 로컬에서 실행

AWS 도구 키트과 통합하는 것 외에도 ‘디버그 모드’에서 AWS SAM를 실행하여 ptvsd 또는 delve와 같은 타사 디버거에 연결할 수도 있습니다.

디버그 모드에서 AWS SAM을 실행하려면 sam local invoke 또는 sam local start-api 명령을 --debug-port 또는 -d 옵션과 함께 사용하십시오.

예:

# 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 SAM CLI가 포트에 바인딩하기 전에 API를 직접 호출해야 디버거가 연결할 수 있습니다.