Print
카테고리: [ Amazon Web Services ]
조회수: 77660

원문 : https://aws.amazon.com/ko/about-aws/whats-new/2020/07/announcing-aws-serverless-application-model-cli-generally-available-production-use/

 

SAM CLI는 서버리스 응용 프로그램을 로컬로 구축, 테스트 및 디버깅 가능한 배포 툴킷이다.

이전의 SAM CLI는 베타버전 이미지를 사용하여 AWS Lambda의 실행 환경을 에뮬레이트 했으나, SAM CLI v.1.0.0 릴리스를 통해 AWS에서 공식적으로 이미지를 제공하여 사용자 지정 AWS Lambda 런타임 및 AWS Lambda Layers에 대한 새로운 빌드 지원 기능을 포함하고 있으며, 프로덕션 서버리스 응용 프로그램 구축에 사용 가능한 안정적 버전으로 권장되고 있다.

SAM CLI에서 제공하는 sam init, sam build, sam deploy 등의 명령어를 사용하여 서버리스 응용 프로그램을 쉽게 구축할 수 있다. sam local invoke를 사용하여 응용 프로그램을 빌드하기 이전에 로컬에서 테스트하고 디버깅 한 후, sam deploy --guided를 사용하여 배포가 가능하다.

SAM CLI는 AWS CLou9, PyCharm, Intellij, VSCode 등 다양한 IDE에서도 구축 가능하며, AWS Lambda를 사용할 수 있는 모든 리전에서 이용할 수 있다.


SAM CLI 설치

Install Docker (Amazon Linux2)

sudo yum update -y
sudo amazon-linux-extras install docker
sudo service docker start
sudo usermod -a -G docker ec2-user

 

Install Homebrew & SAM CLI

brew tap aws/tap
brew install aws-sam-cli
brew upgrade aws-sam-cli

 

SAM CLI TEST

sam init

퀵 스타트 템플릿으로 생성

다양한 런타임이 제공된다. java 등 기존 lambda 콘솔 상에서 직접 테스트 할 수 없었던 런타임을 로컬 환경에서 테스트 하고 배포할 수 있다는 점이 편리하다.

 

tree

sam cli를 통해 생성한 예시 템플릿의 트리구조

 

sam build → maven 오류 발생

sudo yum -y install maven

 

sam build

 

sam local invoke

콘솔에서 테스트하는 것과 같이 로컬에서 실행해볼 수 있다.

 

sam deploy

 

배포 완료 시 표시된 IamRole, ApiGateway, Lambda 등의 리소스들이 AWS에 생성된다.