코드에서 Lambda 함수 실행 및 디버깅 - AWS VS 코드용 도구 키트

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

코드에서 Lambda 함수 실행 및 디버깅

AWS SAM 애플리케이션을 테스트할 때 Lambda 함수만 실행 및 디버깅하고 AWS SAM 템플릿에서 정의하는 다른 리소스를 제외하도록 선택할 수 있습니다. 이 접근 방식에는 CodeLens 기능을 사용하여 직접 호출할 수 있는 소스 코드에서 Lambda 함수 핸들러를 식별하는 것이 포함됩니다.

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

언어/런타임 표시기로 CodeLens 식별할 Lambda 함수의 기준

C#(dotnetcore2.1, 3.1, .NET 5.0)

함수에는 다음 기능을 포함합니다.
  • 퍼블릭 클래스의 퍼블릭 함수입니다.

  • 하나 또는 두 개의 파라미터가 있습니다. 파라미터가 두 개인 경우 두 번째 파라미터가 ILambdaContext 인터페이스를 구현합니다.

  • VS Code WorkSpace 폴더 내 상위 폴더에 *.csproj 파일이 있습니다.

ms-dotnettools.csharp 확장 프로그램 (또는 C# 언어를 지원하는 모든 확장 프로그램)을 설치하고 활성화합니다.

JavaScript/TypeScript (Node.js 12.x, 14.x)

이 함수에는 다음 기능도 포함됩니다.
  • 최대 세 개의 파라미터가 있는 추출 함수입니다.

  • VS Code WorkSpace 폴더 내 상위 폴더에 package.json 파일이 있습니다.

Python (3.7, 3.8, 3.9, 3.10, 3.11, 3.12)

이 함수에는 다음 기능도 포함합니다.
  • 최상위 함수입니다.

  • VS Code WorkSpace 폴더 내 상위 폴더에 requirements.txt 파일이 있습니다.

ms-python.python 확장 프로그램 (또는 Python 언어를 지원하는 모든 확장 프로그램)을 설치하고 활성화합니다.

Java (8, 8.al2, 11)

함수에는 다음 기능도 포함합니다.
  • 추상이 아닌 공개 클래스의 공개 함수입니다.

  • 한 개, 두 개 또는 세 개의 파라미터가 있습니다.

    • 파라미터 1개: 무엇이든 파라미터가 될 수 있습니다.

    • 파라미터 2개: 파라미터는 java.io.InputStreamjava.io.OutputStream이 되거나 마지막 파라미터가 com.amazonaws.services.lambda.runtime.Context여야 합니다.

    • 세 가지 파라미터: 파라미터는 이고 java.io.InputStream java.io.OutputStream AND 마지막 파라미터는 이어야 합니다com.amazonaws.services.lambda.runtime.Context.

  • VS Code WorkSpace 폴더 내 상위 폴더에 build.gradle (Gradle) 또는 pom.xml (Maven) 파일이 있습니다.

redhat.java 확장 프로그램 (또는 Java 언어를 지원하는 모든 확장 프로그램)을 설치하고 활성화합니다. 사용 중인 Java 런타임이 무엇이든 확장 프로그램에 Java 11이 설치되어 있어야 합니다.

vscjava.vscode-java-debug 확장(또는 Java 디버거를 제공하는 모든 확장)이 설치되고 활성화됩니다.

Go (1.x)

이 함수에는 다음 기능도 포함합니다.
  • 최상위 함수입니다.

  • 0~2개의 인수를 사용합니다. 인수가 2개일 경우, 첫 번째 인수는 context.Context를 구현합니다.

  • 0~2개의 인수를 반환합니다. 인수가 0개 이상인 경우, 마지막 인수는 error를 구현합니다.

  • VS Code 작업 폴더 내에 go.mod 파일이 있습니다.

golang.go 확장 프로그램이 설치, 구성 및 활성화되어 있습니다.

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

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

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

  3. 적격 Lambda 함수 핸들러를 식별하는 CodeLens 표시기에서 를 선택합니다Add Debug Configuration.

    Lambda 함수 핸들러의 CodeLens 표시기에서 Debug 구성 추가 옵션에 액세스합니다.
  4. Command Palette에서 AWS SAM 애플리케이션을 실행할 런타임을 선택합니다.

  5. 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 파일을 구성합니다.

    launch.json 파일의 해당 항목 및 기타 항목에 대한 자세한 내용은 서버리스 애플리케이션 디버깅을 위한 구성 옵션 섹션을 참조하세요.

  6. 디버그 구성에 만족하는 경우 디버깅을 시작하려면 옆에 있는 녹색 재생 화살표를 선택합니다RUN.

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