- 만검?
- https://mangum.io
- ASGI 프레임워크 앱이~ AWS Lambda 에서 동작 하도록, 어뎁터 핸들링 제공.
- functionUrl, apiGw, ALB, CF lambda@Edge 등등의 이벤트 지원.
- Starlette, FastAPI, Quart, Django 등의 비동기 프레임워크 지원.
- GZip, Brotli 기반의 "바이너리 미디어타입" 및 "페이로드 압축" 지원.
- 기존 serverless.com, aws sam 등에 배포 및 구성툴 과 연동.
- ASGI 'Lifespan Protocol' 지원 ???
- fastAPI 배포 : https://velog.io/@insutance/simple-deploy-with-fastapi-mangum-lambda-sam
1) npm 배포 : ???- 2) Mangum + AWS SAM 자동배포 : https://iwpnd.pw/articles/2020-01/deploy-fastapi-to-aws-lambda
- 3) Mangum + AWS 수동배포 : https://www.deadbear.io/simple-serverless-fastapi-with-aws-lambda
- 1) Adaptor
- It is a configurable wrapper that allows any ASGI application (or framework) to run in an AWS Lambda deployment.
- ...
- 2) HTTP 스펙 지원
- API GW 이벤트 : ...
- HTTP GW 이벤트 : ...
- ALB 이벤트 : ...
- lambda@Edge 이벤트 : ...
- 응답 관련 설정
- Content-Type : text/... , json, xml, vnd.api+json, vnd.oai.openapi
- Content-Encoding : gzip || br
- HTTPCycle
- is used by the adapter to communicate message events between the application and AWS.
- It is a state machine that handles the entire ASGI request and response cycle.
- run() -> recv() -> send()
- HTTPCycleState
- REQUEST, RESPONSE, COMPLETE
- 3) ASGI Lifespan 프로토콜 지원
- ...
- 4) ASGI 프레임워크 지원
- ...
- ----------------------------------------------------------------------------------------------------
- 예시)
- https://velog.io/@hyoj0942/AWS-LambdaCDK-Docker-Fastapi로-서버리스-백앤드-배포하기1
- ----------------------------------------------------------------------------------------------------
- 확장팩) Fast Skeleton
-
- 컨셉 :
- python + fastAPI 으로, API 및 Worker 개발을 원숭이 도 할 수 있게...
- (mangum 덕분에 fastAPI 를 lambda 에 배포 할 수 있음)
- 개발 :
- PackageType :
- Zip :
- sam local 기반으로 띄움
- Image :
- standalone 혹은 docker-compose 기반으로 띄움
- Zip :
- PackageType :
- CI/CD
- 1안 : git -> circleCI -> sam-cli(검사,빌드,패키징,배포) -> AWS ServerlessApplication
- sam validate -> template.yaml 검사
- sam build -> .aws-sam 생성
- sam package -> s3 업드로
- sam deploy -> stack 배포
- 2안 : git -> circleCI -> aws-cli -> docker -> sam-cli(검사,배포) -> AWS ServerlessApplication
- aws ecr get-login-password | docker login -> ECR 로그인
- docker build -> 이미지 생성
- docker tag&push -> ecr 업로드
- sam validate -> template.yaml 검사
- sam deploy -> stack 배포 (parameter-overrides MyStage 및 MyVersion)
- 3안 : git -> circleCI -> sam-cli(검사,빌드,푸쉬,배포) -> AWS ServerlessApplication
- sam validate -> template.yaml 검사
- sam build -> 이미지 생성 + ecr 업로드
- sam deploy -> stack 배포
- 4안 : git -> circleCI -> ECR 이미지 -> Kustomize 템플릿 수정 -> ArgoCD -> AWS EKS(k8s)
- ...
- 1안 : git -> circleCI -> sam-cli(검사,빌드,패키징,배포) -> AWS ServerlessApplication
- ...
- 컨셉 :
-끝-
'AWS' 카테고리의 다른 글
AWS Marketplace (AMI EC2Launch V2) (0) | 2023.03.05 |
---|---|
AWS SAM 과 Lambda 이미지 커스텀 (0) | 2022.08.31 |
Amazon EFS (0) | 2022.05.19 |
Amazon VPC (0) | 2022.04.29 |
Amazon CloudFront (0) | 2022.03.20 |