Serverless FrameWork 란
- zero-friction serverless development 를 가치로 삼는 오픈 소스 프로젝트
- JavaScript AWS라는 이름으로 시작하여 현재는 AWS 뿐만 아니라 GCP , Azure 등 다른 클라우드 업체도 지원하는 강력 프레임 워크
- 최대한 관례적인 방법을 사용하여 서버리스 기반의 웹 서비스를 쉽게 정의하고 관리할 수 있으며 강력한 플러그인 생태계를 통해 필요한 기능을 확장할 수 있다.
간단한 선언 예시
service: first-severless
provider:
name: aws
runtime: nodejs14.x
region: ap-northeast-2
functions:
echo:
handler: handler.echo
events:
- httpApi: Get /echo
- service
- provider.name
- provider.runtime
- provider.region
- fuctions
- 스택이 포함하는 함수와 그 함수를 실행하기 위한 트리거
- echo.events.httpApi로 /echo라는 주소로 GET 메소드를 요청하면 ECHO함수가 실행된다.
Serverless Framework 도구는 이 severless.yml 파일을 해석해 get /echo 요청을 처리하는 API Gateway 자원을 할당하고, 요청을 처리하기 위해 handler.echo 함수를 실행하는 Lambda 자원을 할당하고, API Gateway이벤트로 부터 실행되도록 연결하고, Lambda에서 발생하는 로그 CloudWatch Logs에 남을수 있도록 연결
만약 handler.echo에 들어가는 코드가 충분히 작다면 Lambda 내 인라인 코드를 업로드 하고 그렇지 않다면 S3에 코드를 ZIP 파일로 압축해서 업로드한후 Lambda에 연결