[Serverless Framework] Core Concepts

Serverless Framework는 이름처럼 AWS lambda, Azure Function을 비롯한 다양한 Cloud Provider들의 서버리스 런타임 서비스를 쉽게 배포할 수 있도록 도와주는 서비스이다.
Serverless Framework에서는 사용자가 서비스를 구성하는 Function과 Event를 정의하는 방식으로 event-driven 서버리스 아키텍처를 생성/배포하게 된다.
Serverless Framework는 AWS, Azure, GCP등 다양한 클라우드 제공자에 대한 배포를 지원하지만, 이 글에서는 가장 익숙한 AWS를 예시로 하였다.
Core Concepts
Functions
Function은 그 이름처럼 하나의 작업을 수행하는 코드에 대응되는 개념이다. Serverless Framework의 Function은 프로그래밍 언어로 작성한 함수와 대응 관계에 있다.
- 데이터베이스에 유저 정보 저장
- 이미지 파일 최적화
Configurtations
Event
Event는 Function을 실행시키는 모든 일련의 사건들을 의미한다. AWS의, AWS Lambda를 실행과 관련된 다양한 이벤트 소스들이 Serverless Framework의 Event에 대응된다고 볼 수 있다.
AWS API GatewayHTTP 엔드포인트 요청이 발생한 경우S3버킷에 파일이 업로드된 경우SNS Topic에 새로운 메시지가 생성된 경우
Resource
Resource는 Function에서 사용하기 위해 선언된 AWS의 서비스들에 해당한다.
AWS DynamoDB테이블AWS S3버킷AWS SNS토픽CloudFormation에서 지원하는 모든 리소스
// handler.js
module.exports.hello = async (event) => {
return {
statusCode: 200,
body: JSON.stringify(
{
message: 'Go Serverless v2.0!',
input: event,
},
null,
2
),
};
};
# serverless.yml
service: myService
provider:
name: aws
runtime: nodejs12.x
memorySize: 512 # optional, in MB, default is 1024
timeout: 10 # optional, in seconds, default is 6
versionFunctions: false # optional, default is true
tracing:
lambda: true # optional, enables tracing for all functions (can be true (true equals 'Active') 'Active' or 'PassThrough')
functions:
hello:
handler: handler.hello # required, handler set in AWS Lambda
name: ${sls:stage}-lambdaName # optional, Deployed Lambda name
description: Description of what the lambda function does # optional, Description to publish to AWS
runtime: nodejs14.x # optional overwrite, default is provider runtime
memorySize: 512 # optional, in MB, default is 1024
timeout: 10 # optional, in seconds, default is 6
provisionedConcurrency: 3 # optional, Count of provisioned lambda instances
reservedConcurrency: 5 # optional, reserved concurrency limit for this function. By default, AWS uses account concurrency limit
tracing: PassThrough # optional, overwrite, can be 'Active' or 'PassThrough'
Author And Source
이 문제에 관하여([Serverless Framework] Core Concepts), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@koo8624/Serverless-Core-Concepts저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)