를 사용하여 서버리스 애플리케이션 실행 및 디버깅 Visual Studio Code용 AWS 도구 키트 - VS 코드용 AWS 도구 키트

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

를 사용하여 서버리스 애플리케이션 실행 및 디버깅 Visual Studio Code용 AWS 도구 키트

다음을 사용할 수 있습니다. Visual Studio Code용 AWS 도구 키트 서버리스 애플리케이션을 디버깅하고 개발 환경에서 로컬로 실행하는 방법을 구성합니다. 서버리스 응용 프로그램을 디버깅할 수 있습니다. 이 응용 프로그램은 AWS Serverless Application Model (AWS SAM) 템플릿. 이 템플릿은 간단한 YAML 구문을 사용하여 함수, APIs서버리스 애플리케이션을 구성하는 , 데이터베이스 및 이벤트 소스 매핑입니다.

자세한 내용은 의 AWS SAM 템플릿, 참조 AWS SAM 템플릿 구조 에서 AWS Serverless Application Model 개발자 안내서.

또는 SAM 템플릿에 커밋되지 않은 서버리스 응용 프로그램을 신속하게 디버깅할 수 있습니다.

Visual Studio 코드(VS 코드)를 사용하여 디버그 동작을 구성하기 시작합니다. CodeLens 적격한 AWS Lambda 기능. (CodeLens는 소스 코드와 콘텐츠 인식 상호 작용을 가능하게 합니다.) SAM 템플릿에 의해 정의된 인프라를 사용하려면 CodeLens 관련 YAML 형식 파일의 표시기. 템플릿 없이 기능을 직접 테스트하려면 CodeLens 인디케이터 Lambda 핸들러를 응용 프로그램 파일에 추가합니다.

참고

이 예제에서는 JavaScript. 그러나 Visual Studio Code용 AWS 도구 키트 다음 언어와 런타임을 사용합니다.

  • C 번호 –.NET Core 2.1(.NET Core 3.1 서버리스 응용 프로그램을 실행할 수 있지만 VS Code용 도구 키트.)

  • JavaScript – 노드.js 10.x, 12.x

  • 비단뱀 가죽 – 2.7, 3.6, 3.7, 3.8

언어 선택은 VS 코드의 CodeLens 적격 감지 Lambda 핸들러. 자세한 정보는 코드에서 직접 서버리스 기능 실행 및 디버깅 단원을 참조하십시오.

SAM 템플릿을 사용하여 서버리스 애플리케이션 실행 및 디버그

SAM 템플릿을 사용하여 실행 및 디버깅되는 응용 프로그램의 경우 YAML 형식 파일은 응용 프로그램의 동작과 응용 프로그램에서 사용하는 리소스를 설명합니다. 서버리스 응용 프로그램을 AWS(에스에이피에스 새 SAM 애플리케이션 생성 옵션 명령 팔레트, 파일 이름 template.yaml 은(는) 프로젝트 에 대해 자동으로 생성됩니다.

이 절차에서는 서버에 무서버 애플리케이션 생성 VS Code용 도구 키트.

참고

귀하가 CodeLens 기능을 사용하여 YAML 언어 지원을 제공하는 VS 코드 확장자를 설치합니다(예: Red Hat의 YAML 언어 지원).

SAM 템플릿을 사용하여 서버리스 애플리케이션을 실행하고 디버깅하려면

  1. VS 코드의 파일 탐색기에서 애플리케이션 파일을 보려면 보기, 탐험가.

  2. 애플리케이션 폴더(예: 내-샘플-앱), 을(를) 엽니다. template.yaml 파일.

    참고

    다른 이름의 템플릿을 사용하는 경우 template.yaml, CodeLens 표시기가 YAML 파일에서 자동으로 사용할 수 없습니다. 즉, 디버그 구성을 수동으로 추가해야 합니다.

  3. 에 대한 편집기에서 template.yaml, go to the Resources 섹션 을 참조하십시오. 이 경우, 이것은 HelloWorldFunction 리소스 유형 AWS::Serverless::Function.

    에서 CodeLens 이 리소스에 대한 표시기를 선택하려면 디버그 구성 추가.

    
                        사용 CodeLens 인디케이터 template.yaml 파일을 클릭하여 디버그 구성을 추가합니다.

    새 편집기가 launch.json 기본 특성을 가진 디버깅 구성을 제공하는 파일입니다.

  4. 다음 구성 속성에 대한 값을 편집하거나 확인합니다.

    • "name" – 리더에 친숙한 이름을 입력하여 구성 드롭다운 필드를 실행 보기.

    • "target" – 값이 다음과 같은지 확인합니다. "template" SAM 템플릿이 디버그 세션의 진입점이 되도록 합니다.

    • "templatePath" – 의 상대 또는 절대 경로를 입력합니다. template.yaml 파일.

    • "logicalId" – 이름이 리소스 섹션을 참조하십시오. 이 경우에는 HelloWorldFunction / 유형 AWS::Serverless::Function.

    
                        구성 launch.json 템플릿 기반 디버깅을 위한 파일입니다.
    참고

    VS 코드의 IntelliSense 응용 프로그램에 대한 추가 디버그 속성을 찾고 자동으로 완료하는 기능. 자세한 정보는 서버리스 애플리케이션 디버깅을 위한 구성 옵션 단원을 참조하십시오.

  5. 디버그 구성에 만족하면 launch.json. 그런 다음 달리기 디버깅을 시작하려면 을 참조하십시오.

    디버깅 세션이 시작되면 디버그 콘솔 패널은 디버깅 출력을 표시하고 Lambda 기능. (SAM 애플리케이션을 디버깅할 때 AWS 툴킷 이(가) 출력 채널 출력 있습니다.)

    참고

    Windows 사용자의 경우 이 프로세스 중에 Docker 마운트 오류가 발생하면 공유 드라이브( 도커 설정). 도커 장착 오류는 다음과 같이 나타납니다.

    Fetching lambci/lambda:nodejs10.x Docker container image...... 2019-07-12 13:36:58 Mounting C:\Users\<username>\AppData\Local\Temp\ ... as /var/task:ro,delegated inside runtime container Traceback (most recent call last): ... requests.exceptions.HTTPError: 500 Server Error: Internal Server Error ...

코드에서 직접 서버리스 기능 실행 및 디버깅

테스트할 때 AWS SAM 애플리케이션만 실행 및 디버깅하도록 선택할 수 있습니다. Lambda 기능을 사용하여 SAM 템플릿에 의해 정의된 다른 리소스를 제외합니다. 이 접근법은 CodeLens 식별 가능한 기능 Lambda 소스 코드에서 직접 호출할 수 있는 함수 처리기입니다.

더 Lambda 감지된 처리기 CodeLens 응용 프로그램에 사용하는 언어와 런타임에 따라 다릅니다.

언어/런타임 에 대한 기준 Lambda 에서 식별해야 하는 기능 CodeLens 지표

C#(도트넷코어2.1)

이 기능에는 다음과 같은 기능이 있습니다.
  • 바로 공공 계층의 공공 기능.

  • ᄒs 하나 또는 두 개의 파라미터. 두 개의 매개 변수를 사용하는 경우 두 번째 매개 변수는 ILambdaContext 인터페이스.

  • 여기에는 *.csproj 파일을 상위 폴더의 VS Code 작업 영역 폴더 내에 저장합니다.

JavaScript (노드.js 10.x 및 12.x)

이 기능에는 다음과 같은 기능이 있습니다.
  • 최대 3개의 매개변수를 가진 내보낸 함수입니다.

  • 여기에는 package.json 파일을 상위 폴더의 VS Code 작업 영역 폴더 내에 저장합니다.

파이톤(node.js 10.x 및 12.x)

이 기능에는 다음과 같은 기능이 있습니다.
  • 최고 수준의 기능입니다.

  • 여기에는 requirements.txt 파일을 상위 폴더의 VS Code 작업 영역 폴더 내에 저장합니다.

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

  1. VS 코드 파일 탐색기에서 애플리케이션 파일을 보려면 보기, 탐험가.

  2. 애플리케이션 폴더에서(내-샘플-앱예를 들어 ) 함수 폴더를 확장합니다(헬로-월드, 이 경우)를 열고 app.js 파일.

  3. 에서 CodeLens 적격한 Lambda 핸들러 기능, 선택 Add Debug Configuration.

    
                        에서 디버그 구성 추가 옵션에 액세스합니다. CodeLens 인디케이터 Lambda 기능 처리기.
  4. 에서 명령 팔레트SAM 응용 프로그램이 실행될 런타임을 선택합니다.

  5. 에 대한 편집기에서 launch.json 다음 구성 속성에 대한 값을 파일, 편집 또는 확인합니다.

    • "name" – 리더에 친숙한 이름을 입력하여 구성 드롭다운 필드를 실행 보기.

    • "target" – 값이 다음과 같은지 확인합니다. "code" 이렇게 하면 Lambda 핸들러가 직접 호출됩니다.

    • "lambdaHandler" – 코드에 있는 메서드 이름을 입력합니다. Lambda 기능을 호출하기 위한 호출. 예를 들어, JavaScript, 기본값은 app.lambdaHandler.

    • "projectRoot" – 를 포함하는 애플리케이션 파일의 경로를 입력합니다. Lambda 기능.

    • "runtime" – 에 대한 유효한 런타임을 입력하거나 확인합니다. Lambda 실행 환경(예: "nodejs.12x".

    
                        구성 launch.json 직접 호출 기능을 위한 파일입니다.
    참고

    VS 코드를 사용할 수 있습니다. IntelliSense 기능을 위한 추가 디버그 속성을 찾아 자동으로 완료하는 기능. 자세한 정보는 서버리스 애플리케이션 디버깅을 위한 구성 옵션 단원을 참조하십시오.

  6. 디버그 구성에 만족하면 다음 옆에 있는 녹색 재생 화살표를 선택하십시오. 달리기 디버깅을 시작하려면.

    디버깅 세션이 시작되면 디버그 콘솔 패널은 디버깅 출력을 표시하고 Lambda 기능. (SAM 애플리케이션을 디버깅할 때 AWS 툴킷 이(가) 출력 채널 출력 있습니다.)

    참고

    오류 메시지에 Docker가 언급된 경우 다음을 참조하십시오. 메모.

서버리스 애플리케이션 디버깅을 위한 구성 옵션

을(를) 열 때 launch.json 파일을 사용하여 디버그 구성을 편집할 수 있습니다. VS 코드를 사용할 수 있습니다. IntelliSense 유효한 속성을 보고 자동으로 완료하는 기능. 트리거하려면 IntelliSense 편집기에서 제어+스페이스바.


                VS 코드 사용 IntelliSense 유효한 디버그 속성 을 찾아서 완료합니다.

함께 IntelliSense, 호출 속성을 쉽게 찾고 정의할 수 있습니다. Lambda 는 직접 또는 SAM 템플릿 과 함께 작동합니다. 또한 다음에 대한 속성을 정의할 수 있습니다. "lambda" (기능 실행 방법), "sam" ( AWS SAM CLI가 애플리케이션을 구축합니다. "aws" (방법 AWS 연결 정보가 제공됩니다).

AWS 샘: 직접 람다 핸들러 호출 / 템플릿 기반 람다 호출
속성 설명

type

시작 구성을 관리하는 확장을 지정합니다. 항상 다음으로 설정 aws-sam 을(를) 사용하여 AWS SAM 로컬 을(를) 구축하고 디버깅하려면 CLI를 클릭합니다().

name

다음에 표시할 판독기 친화적 이름을 지정합니다. 디버그 시작 구성 목록.

request

지정된 확장자가 수행할 구성 유형을 지정합니다(aws-sam). 항상 다음으로 설정 direct-invoke 을(를) 시작하여 Lambda 기능.

invokeTarget

리소스를 호출하기 위한 진입점을 지정합니다.

을(를) 호출하려면 Lambda 다음 값에 대한 값을 설정합니다. invokeTarget 필드:

  • target – 다음으로 설정 code.

  • lambdaHandler – 의 이름 Lambda 함수 처리기를 사용하여 을(를) 호출합니다.

  • projectRoot – 를 포함하는 응용 프로그램 파일의 경로 Lambda 핸들러.

을(를) 호출하려면 Lambda SAM 템플릿이 있는 리소스, 다음 값 설정 invokeTarget 필드:

  • target – 다음으로 설정 template.

  • templatePath – SAM 템플릿 파일의 경로입니다.

  • logicalId – 의 리소스 이름 AWS::Lambda::Function 또는 AWS::Serverless::Function 호출하려면. 리소스 이름은 YAML 형식 SAM 템플릿에서 찾을 수 있습니다.

Lambda ("lambda") 속성
속성 설명

environmentVariables

작동 매개변수를 귀하의 기능에 전달합니다. 예를 들어, Amazon S3 버킷은 쓰기 중인 버킷 이름을 하드코딩하는 대신, 환경 변수로 버킷 이름을 구성합니다.

payload

JSON 파일 형식으로 이벤트를 트리거하는 형식을 설명합니다. Lambda 기능.

다음 명령을 실행하여 이벤트 페이로드를 생성할 수 있습니다. 터미널 VS 코드:

sam local generate-event apigateway aws-proxy

memoryMB

실행을 위해 제공된 메모리의 메가바이트를 지정합니다. 을 호출됨 Lambda 기능.

runtime

에서 사용하는 런타임을 지정합니다. Lambda 기능. 자세한 내용은 을 참조하십시오. AWS Lambda 런타임.

timeoutSec

디버그 세션이 시간 초과되기 전에 허용되는 시간(초)을 설정합니다.

더 Visual Studio Code용 AWS 도구 키트 은(는) AWS SAM CLI를 사용하여 서버리스 애플리케이션을 로컬로 구축하고 디버깅합니다. 의 동작을 구성할 수 있습니다. AWS SAM 의 속성을 사용하는 CLI 명령 "sam" 구성 launch.json 파일.

AWS SAM 클리("sam") 속성
속성 설명 기본값

buildArguments

의 설정 방법 구성 sam build 커맨드는 Lambda 소스 코드. 빌드 옵션을 보려면 을 참조하십시오. SAM 빌드 에서 AWS Serverless Application Model 개발자 안내서.

비어 있는 문자열

containerBuild

내부에서 기능을 구축할지 여부를 나타냅니다. AWS Lambda- 도커 컨테이너와 유사.

false

dockerNetwork

다음에 해당하는 기존 Docker 네트워크의 이름 또는 ID를 지정합니다. Lambda 도커 컨테이너는 기본 브리지 네트워크와 함께 에 연결해야 합니다. 지정되지 않은 경우 Lambda 컨테이너는 기본 브리지 도커 네트워크에만 연결됩니다.

비어 있는 문자열

localArguments

추가 로컬 호출 인수.

비어 있는 문자열

skipNewImageCheck

명령이 최신 Docker 이미지를 아래로 끌지 않아야 하는지 여부를 지정합니다. Lambda 런타임.

false

template

매개 변수를 사용하여 고객 값을 입력하여 SAM 템플릿을 사용자 지정합니다. 자세한 내용은 을 참조하십시오. 매개변수 에서 AWS CloudFormation 사용 설명서.

"parameters":{}

AWS connection ("aws") 속성
속성 설명 기본값

credentials

특정 프로필(예: profile:default)을 클릭하여 AWS 자격 증명.

더 AWS 자격 증명 제공 Visual Studio Code용 AWS 도구 키트 기존의 공유됨 AWS 파일 또는 공유 AWS 자격 증명 파일 구성.

region

설정 AWS 서비스 지역(예: us-east-1).

기본값 AWS 활성 자격 증명 프로필과 연결된 지역입니다.