Serverless framework 는 서버없이 아키텍쳐를 운영해주는 프레임워크이며, serverless architecture용 라이브러리 라고 보면된다
$ npm i -g serverless
공식홈페이지 https://www.serverless.com/ 를 참고하여
우선 serverless 를 설치해준다
$ sls create -t aws-nodejs -p sls-sample
sls = serverless , -t = --template , -p [폴더명]
이와같이 기본 handler 및 yml 파일이 생긴걸 확인 할 수 있다
$ sls config credentials --provider aws --key <Acesskey> --secret <SecretKey>
https://aws.amazon.com/ko/ 에서 iam 계정으로 key 생성후 입력해주면 된다
만약 이전에 등록했던 aws credential 이 있다면 기본적으로 '~/.aws/credentials' 파일에 [default] 값으로 세팅이 되어있어 새로운 credential 등록이 되지 않는다
이럴경우 2가지 방법이 있다
1. -o 옵션을 붙여서 위의 명령어 실행
2. 직접 credentials 파일 수정 후 [default] 밑에 파일삽입
$ sls config credentials --provider aws --key <Acesskey> --secret <SecretKey> --overwrite
위의 명령어로 덮어씌워주면 된다
$ sls deploy
잠깐! sls deploy 를 하기전에 region 과 rest api 를 세팅 해야한다 (안그러면 default region 인 버지니아에 생성됨)
#serverless.yml
service: sls-sample
frameworkVersion: "3"
provider:
name: aws
runtime: nodejs18.x
stage: dev
region: ap-northeast-2
functions:
hello:
handler: handler.hello
events:
- http:
path: hello
method: get
이전에 템플릿 생성시 만들어놓은 serverless.yml 파일의
region 과 events 를 설정
region: ap-northeast-2 는 Seoul
events: 함수를 실행하는 트리거
[공식문서]
https://www.serverless.com/framework/docs/providers/aws/guide/events
deploy 성공시 밑과 같은 화면이 나온다
$ curl https: [deploy 한 서버주소]
실행시 밑과 같은 리턴값이 출력되는것을 확인 가능하다
Serverless framework 를 사용함으로써 API Gateway , S3 , lambda 등을 직접 만들필요없이 만들어줌으로써 좋은거같다