SAM이란 템플릿을 만들때 serverless 어플리케이션을 목적으로 작성해 나가고 이 서버리스 어플리케이션은 클라우드포메이션을 통해서 만들어지게 된다. 그냥 보면 SAM을 쓰지 않고 클라우드포메이션에서 템플릿만 변경하면 되는것 같지만 SAM은 서버리스 어플리케이션을 만들때 아주 간단한 Syntax가 사용된다. aws에 서버리스 어플리케이션으로는 Api Gayteway, Lambda, DynamoDB등이 있다.
SAM은 자기만의 CLI가 존재한다. 이 cli을 사용하여 코드들을 묶어 배포용 패키지를 만든다음 S3bucket에 업로드를 하고 CloudFormation을 통해 서버리스 어플리케이션을 만든다.
SAM CLI명령어를 살펴보면
sam package를 보면 template.yml을 sam규격에 맞게 템플릿으로 변환시켜야하기 때문에 sam-template.yml로 변경한다고 했고 변경된 템플릿을 업로드할 S3이름을 명시했다.
sam deploy로 서버리스 어플리케이션을 배포한다.
첫번째는 sam template파일을 넣어주고 두번째는 클라우드포메이션에 만들어질 스텍 이름을 명시해준다.
마지막 capabilities는 클라우드 포메이션으로 하여 새로운 iam을 만들게 하는것이고 이것은 stack을 만들때 필요한 api호출을 하게 되는데 여기에 필요한 permission들을 가지게 되므로써 성공적인 api호출을 할 수 있게 해주는 파라미터이다.
'AWS' 카테고리의 다른 글
"기본 인증 자격 증명 없음"으로 ECR에 대한 Docker 푸시 실패 (0) | 2023.01.03 |
---|---|
ECR (0) | 2023.01.03 |
ECS (0) | 2023.01.03 |
Elastic beanstalk (0) | 2023.01.03 |
Code Deploy Life Cycle Event Hooks (0) | 2023.01.01 |