서버리스 애플리케이션 작업 - AWSToolkit for VS Code

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

서버리스 애플리케이션 작업

이AWS Toolkit for Visual Studio Code에 대한 지원 제공서버리스 애플리케이션. Toolkit for VS Code 사용하여 다음을 포함하는 서버리스 응용 프로그램을 만들 수 있습니다.AWS Lambda함수를 선택한 다음 애플리케이션을 에 배포합니다.AWS CloudFormation스택.

가정 및 사전 조건

  • 시스템이 에 지정된 필수 사전 조건을 충족하는지 확인합니다.다음 설치AWS Toolkit for Visual Studio Code.

  • 설치AWS Serverless Application Model(AWS SAM)명령줄 인터페이스 (CLI) 와 사전 조건을 설명합니다. 단원을 참조하십시오.AWS SAMCLI설정 사전 조건. 이러한 설치를 수행할 때 Visual Studio 코드가 열려 있으면 편집기를 닫았다가 다시 열어야 할 수 있습니다.

  • 기본 식별AWS에 있는 리전AWS구성 파일. 자세한 내용은 단원을 참조하십시오.구성 및 자격 증명 파일 설정AWS Command Line Interface사용 설명서. 구성 파일을 업데이트할 때 Visual Studio 코드가 열려 있으면 편집기를 닫았다가 다시 열어야 할 수 있습니다.

  • 언어 SDK를 설치한 후 툴체인을 구성해야 합니다.

  • 에 액세스할 수 있는지 확인하려면CodeLens활성화합니다.AWS SAM템플릿 파일, 설치YAML 언어 지원VS 코드 확장입니다.

서버리스 애플리케이션을 위한 IAM 권한

Toolkit for VS Code 툴킷에서 다음을 포함하는 자격 증명 프로파일이 있어야 합니다.AWS Identity and Access Management(IAM) 서버리스 애플리케이션을 배포하고 실행하는 데 필요한 권한입니다. 다음 서비스에 대해 적절한 읽기/쓰기 액세스 권한이 있어야 합니다. AWS CloudFormation, IAM, Lambda, Amazon Simple Storage Service (Amazon Simple Storage Service) Elastic Container Registry (Amazon ECR) 가 있습니다.

서버리스 애플리케이션을 배포하고 실행하는 데 필요한 권한이 있는지 확인하는 방법에 대한 자세한 내용은 항목을 참조하십시오.권한AWS Serverless Application Model개발자 안내서. 자격 증명 프로필을 설치하는 방법에 대한 자세한 내용은 항목을 참조하십시오.설정 방법AWS신임장.

새 서버리스 애플리케이션 생성 (로컬)

이 절차에서는 를 사용하여 도구 키트 도구 키트 (Toolkit for VS Code) 를 사용하여 서버리스 애플리케이션을 생성하는 방법을 보여 줍니다.AWS SAM. 이 절차의 출력은 샘플 서버리스 애플리케이션을 포함하는 개발 호스트의 로컬 디렉터리이며, 이를 빌드, 로컬에서 테스트, 수정 및 배포할 수 있습니다.AWS구름.

  1. 를 열려면명령 팔레트, 선택보기:,명령 팔레트를 입력 항목AWS.

  2. 선택AWS툴킷 Lambda SAM 애플리케이션.

    
            명령 팔레트 대화 상자입니다.
    참고

    만약AWS SAMCLI가 설치되어 있지 않으면 VS 코드 편집기의 오른쪽 아래 모서리에 오류가 표시됩니다. 이런 일이 발생하면 다음 사항을 모두 충족했는지 확인하십시오.가정 및 사전 조건.

  3. 용 런타임을 선택합니다.AWS SAM애플리케이션을 배포합니다.

    참고

    ‘(Image)’라는 표시가 있는 런타임 중 하나를 선택하면 애플리케이션의 패키지 유형이 Image가 됩니다. ‘(Image)’라는 표시가 없는 런타임 중 하나를 선택하면 애플리케이션의 유형이 Zip이 됩니다. Image 패키지 유형과 Zip 패키지 유형의 차이점에 대한 자세한 내용은 AWS Lambda 개발자 가이드에서 Lambda 배포 패키지를 참조하세요.

  4. 선택한 런타임에 따라 SAM 애플리케이션에 대한 종속성 관리자 및 런타임 아키텍처를 선택하라는 메시지가 표시될 수 있습니다.

    Dependency Manager

    다음 중에서 선택Gradle또는박식한 사람.

    참고

    이러한 빌드 자동화 도구 선택은 Java 런타임에만 사용할 수 있습니다.

    Architecture

    다음 중에서 선택x86_64또는arm64.

    기본 x86_64 기반 환경 대신 ARM64 기반 에뮬레이트된 환경에서 서버리스 애플리케이션을 실행하는 옵션은 다음 런타임에 사용할 수 있습니다.

    • nodejs12.x (ZIP 및 이미지)

    • nodejs14.x (ZIP 및 이미지)

    • Python3.8 (ZIP 및 이미지)

    • Python3.9 (ZIP 및 이미지)

    • java8.al2 (Gradle 포함)

    • java8.al2 (메이븐 포함)

    • 그래들이 있는 java11 (ZIP 및 이미지)

    • 자바11과 메이븐 (우편만 해당)

    중요

    설치해야 합니다.AWS CLI버전 1.33.0 이상 버전을 사용하여 애플리케이션을 ARM64 기반 환경에서 실행할 수 있습니다. 자세한 정보는 사전 조건을 참조하세요.

  5. 새 프로젝트의 위치를 선택합니다. 기존 업무 공간 폴더가 열려 있는 경우 기존 업무 공간 폴더를 사용하거나, 이미 존재하는 다른 폴더를 선택하거나, 새 폴더를 생성하고 선택할 수 있습니다. 이 예에서는 There are no workspace folders open(업무 공간 폴더가 열려 있지 않습니다)를 선택하여 이름이 MY-SAM-APP인 폴더를 생성합니다.

  6. 프로젝트의 이름을 입력합니다. 이 예에서는 my-sam-app-nodejs를 +사용합니다. 를 누른 후Enter를 선택하면 Toolkit for VS Code 키트에서 프로젝트를 생성하는 데 몇 분 정도 걸립니다.

프로젝트가 생성되면 현재 업무 공간에 애플리케이션이 추가됩니다. 탐색기 창에 해당 프로젝트가 보여야 합니다.

서버리스 애플리케이션 열기 (로컬)

로컬 개발 호스트에서 서버리스 애플리케이션을 열려면 애플리케이션의 템플릿 파일이 포함된 폴더를 엽니다.

  1. 에서File, 선택폴더 열기....

  2. 에서폴더 열기대화 상자에서 열려는 서버리스 애플리케이션 폴더를 탐색합니다.

  3. 를 선택합니다.폴더 선택단추.

응용 프로그램의 폴더를 열면 응용 프로그램의 폴더가탐색기창문.

템플릿에서 서버리스 애플리케이션 실행 및 디버깅 (로컬)

Toolkit for VS Code 사용하여 서버리스 애플리케이션을 디버그하고 개발 환경에서 로컬로 실행하는 방법을 구성할 수 있습니다.

VS 코드를 사용하여 디버그 동작 구성을 시작입니다.CodeLens기능을 사용하여 적합한 Lambda 함수를 식별합니다. CodeLens 소스 코드와의 콘텐츠 인식 상호 작용을 활성화합니다. 다음에 액세스할 수 있는지 확인하는 방법에 대한 자세한 내용은 CodeLens 기능, 검토가정 및 사전 조건이 주제의 앞부분에서 섹션을 참조하십시오.

참고

이 예에서는 다음을 사용하는 애플리케이션을 디버그합니다. JavaScript. 하지만 Toolkit for VS Code 다음 언어 및 런타임에 사용할 수 있습니다.

  • C# — .NET Core 2.1, 3.1; .NET 5.0

  • JavaScript/TypeScript — Node.js 12.x, 14.x

  • Python — 2.7, 3.6, 3.7, 3.7, 3.8, 3.9

  • 자바 — 8, 8.al2, 11

  • Go — 1.x

선택한 언어에도 영향을 미칩니다. CodeLens 적합한 Lambda 핸들러를 감지합니다 자세한 정보는 코드에서 직접 Lambda 함수 실행 및 디버깅을 참조하세요.

이 절차에서는 에서 생성된 예제 애플리케이션을 사용합니다.새 서버리스 애플리케이션 생성 (로컬)단원을 이 주제의 앞부분에서 설명합니다.

  1. VS Code의 파일 탐색기에서 애플리케이션 파일을 보려면보기:,탐색기.

  2. 애플리케이션 폴더에서 (예:my-sample-app), 를 엽니다.template.yaml파일.

    참고

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

  3. 용 편집기에서template.yaml로 이동합니다.Resources서버리스 리소스를 정의하는 템플릿의 섹션입니다. 이 경우, 이것은 입니다.HelloWorldFunction리소스 유형AWS::Serverless::Function.

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

    
            사용 CodeLens 의 표시기template.yaml파일을 사용하여 디버그 구성을 추가할 수 있습니다.
  4. 에서명령 팔레트에서 사용자 정의 된 런타임을 선택합니다.AWS SAM응용 프로그램이 실행됩니다.

  5. launch.json 파일의 편집기에서 다음 구성 속성의 값을 편집하거나 확인합니다.

    • "name" - [실행(Run)] 보기의 [구성(Configuration)] 드롭다운 필드에 표시할 알아보기 쉬운 이름을 입력합니다.

    • "target"— 값이 다음과 같은지 확인합니다."template"그래서AWS SAM템플릿 은 디버그 세션의 진입점입니다.

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

    • "logicalId"— 이름이 에 지정된 이름과 일치하는지 확인합니다.리소스의 단원AWS SAM주형. 이 예에서는 AWS::Serverless::Function 유형의 HelloWorldFunction입니다.

    
            구성launch.json템플릿 기반 디버깅용 파일입니다.

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

  6. 디버그 구성에 만족하면 launch.json을 저장합니다. 그런 다음 디버깅을 시작하려면 [] 에서 녹색 '재생' 버튼을 선택합니다.를 실행합니다보기.

    디버깅 세션이 시작되면 [콘솔 디버그(DEBUG CONSOLE)] 패널에 디버깅 출력이 표시되고 Lambda 함수에서 반환된 모든 값이 표시됩니다. (디버깅 시AWS SAM응용 프로그램,AWS툴킷로 선택됨출력의 채널출력패널.)

서버리스 애플리케이션을 에 배포AWS배포하기

이 예에서는 이전 섹션 () 에서 생성한 서버리스 애플리케이션을 배포하는 방법을 보여 줍니다 ().새 서버리스 애플리케이션 생성 (로컬)) 를 다음으로AWSToolkit for VS Code

배포를 수행하기 전에 다음 항목이 포함되는지 확인해야 합니다.

  • 배포 유형이 있는 애플리케이션의 경우Zip배포에 사용할 전역적으로 고유한 Amazon S3 버킷 이름이 있어야 합니다.

  • 배포 유형이 있는 애플리케이션의 경우Image에서 배포에 사용할 전역적으로 고유한 Amazon S3 버킷 이름과 Amazon ECR 리포지토리 URI가 모두 있어야 합니다.

Lambda 패키지 유형에 대한 자세한 내용은 항목을 참조하십시오.Lambda 배포 패키지AWS Lambda개발자 안내서.

서버리스 애플리케이션을 배포하려면 다음 단계를 수행합니다.

  1. 를 열려면명령 팔레트, 선택보기:,명령 팔레트를 입력 항목AWS.

  2. 선택AWS도구 키트.

    
            서버리스 애플리케이션을 배포하는 명령입니다.
  3. 배포에 사용할 template.yaml 파일을 선택합니다.

  4. 를 선택합니다.AWS배포할 리전 입니다.

  5. 이 배포에서 사용할 수 있는 Amazon S3 버킷의 이름을 입력합니다. 버킷은 배포하려는 리전에 있어야 합니다.

    주의

    Amazon S3 버킷 이름은 Amazon S3의 모든 기존 버킷 이름에서 전역적으로 고유해야 합니다. 따라서 다음 예에 제공된 이름에 고유 식별자를 추가하거나 다른 이름을 선택해야 합니다.

  6. 서버리스 애플리케이션에 패키지 유형이 Image인 함수가 포함되어 있는 경우, 이 배포에서 사용할 수 있는 Amazon ECR 리포지토리의 이름을 입력합니다. 이 리포지토리는 배포하려는 리전에 있어야 합니다.

  7. 배포된 스택의 이름(새 스택 이름 또는 기존 스택 이름)을 입력합니다.

  8. 다음 위치에서 배포의 성공 여부를 확인합니다.출력VS 코드의 탭에서 확인할 수 있습니다.

    오류가 발생하면 다음과 유사한 메시지가 오른쪽 아래에 팝업됩니다.

    
            서버리스 애플리케이션을 배포하는 동안 오류 팝업이 표시됩니다.

    이 경우 자세한 내용은 OUTPUT(출력) 탭의 텍스트를 확인하십시오. 다음은 오류 세부 정보의 예입니다.

    Error with child process: Unable to upload artifact HelloWorldFunction referenced by CodeUri parameter of HelloWorldFunction resource. S3 Bucket does not exist. Execute the command to create a new bucket AWS s3 mb s3://pbart-my-sam-app-bucket An error occurred while deploying a SAM Application. Check the logs for more information by running the "View AWS Toolkit Logs" command from the Command Palette.

    이 예에서는 Amazon S3 버킷이 없기 때문에 오류가 발생했습니다.

    오류가 발생할 경우 다음을 볼 수도 있습니다.AWS Toolkit명령 팔레트를 사용하여 기록합니다. 이렇게 하려면 다음으로 이동합니다.보기:메뉴, 선택명령 팔레트를 입력합니다.AWS를 선택하고AWS도구 키트 보기AWS Toolkit로그.

배포가 완료되면 다음 위치에 해당 애플리케이션이 나열됩니다.AWS탐색기. 애플리케이션의 일부로 생성된 Lambda 함수를 호출하는 방법을 알아보려면 원격 Lambda 함수와 상호 작용 섹션을 참조하세요.

AWS 클라우드에서 서버리스 애플리케이션 삭제

서버리스 애플리케이션을 삭제하려면 AWS 클라우드에 이전에 배포한 AWS CloudFormation 스택을 삭제해야 합니다. 이 절차는 로컬 호스트에서 애플리케이션 디렉터리를 삭제하지 않습니다.

  1. AWS 탐색기을 엽니다.

  2. 에서AWS도구 키트창에서 삭제하려는 배포된 애플리케이션이 포함된 리전을 확장한 다음AWS CloudFormation.

  3. [] 이름의 컨텍스트 메뉴를 엽니다 (마우스 오른쪽 버튼 클릭).AWS CloudFormation삭제하려는 서버리스 애플리케이션에 해당하는 스택을 선택한 다음삭제AWS CloudFormation스택.

  4. 선택한 스택을 삭제하겠다는 의사를 확인하고 [] 를 선택합니다..

스택 삭제가 성공하면 VS 코드용 도구 키트는 [도구 키트] 에서 스택 이름을 제거합니다.AWS CloudFormationLIST INAWS탐색기.