멋진 샘

AWS Serverless Application Model(SAM)은 서버리스 애플리케이션을 구축하기 위한 오픈 소스 프레임워크입니다. 명시적 함수, API, 데이터베이스 및 경우 공급 매핑에 대한 속기 구문을 제공합니다.

SAM은 CloudFormation 캐리어 및 CloudFormation 템플릿을 기반으로 합니다. 따라서 AWS CloudFormation의 확장입니다.
SAM은 서버리스 서비스만 지원합니다. 다른 리소스를 생성하려면 SAM 템플릿에서 CloudFormation을 사용하십시오!

설치를 위해 - install SAM instructionsSAM Git Repo을 따르십시오.



SAM 애플리케이션
인기 있는SAM example을 따라 Python Hello world Lambda 함수를 생성해 보겠습니다.


SAM 템플릿

Cloudformation 템플릿의 확장으로 SAM 템플릿은 동일한 형식을 따릅니다. 즉, Cloudformation에서 사용하는 것과 동일한 참조/구조를 SAM 템플릿에서 사용할 수 있습니다. 위 템플릿 파일의 시작 부분에서 일반 CloudFormation 템플릿과의 주요 차이점은 다음과 같습니다.

AWSTemplateFormatVersion : '2010-09-09'
Transform: AWS::Serverless-2016-10-31


Transform 속성은 CloudFormation에 템플릿 처리 방법을 알려주고 SAM 리소스 유형을 사용할 수 있도록 합니다.

빌드 및 배포
그냥 샘 빌드를 실행
이렇게 하면 소스 코드가 컴파일되고 애플리케이션에 있는 모든 종속성이 빌드됩니다. 그런 다음 모든 파일을 .aws-sam/build 폴더로 이동하여 패키징하고 배포할 준비를 합니다. 또한 그에 따라 template.yml 파일을 업데이트합니다.

로컬에서 애플리케이션 테스트
SAM CLI는 애플리케이션을 로컬에서 실행하기 위한 sam local 명령을 제공합니다. 이는 내부적으로 Docker를 사용하여 Lambda의 실행 환경을 시뮬레이션합니다.
sam local invoke "Hello" -e event.json
여기서 모의된 event.json 파일을 이벤트 소스로 사용하여 Hello 함수를 호출합니다.

기타 리소스 SAM 유형
AWS::Serverless::HttpApi — REST API 대신 HTTP API를 생성합니다(여기에서 둘 사이의 차이점을 확인하십시오).
AWS::Serverless::LayerVersion — 람다 함수에 필요한 라이브러리 또는 런타임 코드로 Lambda LayerVersion을 생성합니다.
AWS::Serverless::SimpleTable — 단일 속성 기본 키가 있는 테이블의 간단한 사용 사례만 다루는 DynamoDB 테이블을 생성합니다.
AWS::Serverless::StateMachine — AWS Step Functions 상태 시스템을 생성하여 복잡한 워크플로를 구성합니다.

좋은 웹페이지 즐겨찾기