[AWS] Lambda: FastAPI ๋ถ™์ด๊ธฐ

FastAPI๋„ magnum์ด๋ผ๋Š” ์„œ๋“œํŒŒํ‹ฐ๋ฅผ ํ†ตํ•ด ๋ฐ”๋กœ Lambda์— ๋ถ™์—ฌ์„œ ์“ธ ์ˆ˜๊ฐ€ ์žˆ๋‹ค.



Lambda ์„ธํŒ…

๋จผ์ € ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ชจ๋“ˆ์„ ์ ์ ˆํžˆ ๊น”์•„์„œ Lambda์— ๋ฐ•์„ ๋ ˆ์ด์–ด๋กœ ๋ง์•„์ค€๋‹ค.

fastapi>=0.65.2
pydantic>=1.8.2
uvicorn>=0.11.7
mangum==0.17.0

https://blog.naver.com/sssang97/223199232880

์—…๋กœ๋“œํ•ด์„œ ๋ ˆ์ด์–ด ๋“ฑ๋กํ•ด์ฃผ๊ณ 

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ค€๋‹ค.

from fastapi import FastAPI
from mangum import Mangum

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

@app.get("/health")
async def health_check():
    return {"message": "OK"}

lambda_handler = Mangum(app, lifespan="off")



API Gateway

์ด๊ฒŒ ๋์€ ์•„๋‹ˆ๋‹ค.
Web API ํ˜•ํƒœ๋กœ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๊ฒŒ๋” ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ํŒŒ์ค˜์•ผ ํ•œ๋‹ค.

https://blog.naver.com/sssang97/223098812722

Rest API Gateway๋กœ ํŒŒ์ค€ ๋‹ค์Œ์—, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ๋ฆฌ์†Œ์Šค๋ฅผ ์ •์˜, ๋žŒ๋‹คํ•จ์ˆ˜๋ฅผ ์—ฐ๋™ํ•œ๋‹ค.


๊ทธ๋ฆฌ๊ณ  ๋ฐฐํฌ๋ฅผ ๋„์šฐ๋ฉด

ํ•ด๋‹น ๋ฐฐํฌ ์Šคํ…Œ์ด์ง€๋ฅผ ํ†ตํ•ด ์ ‘์†์ด ๊ฐ€๋Šฅํ•ด์งˆ ๊ฒƒ์ด๋‹ค.


์ฐธ์กฐ
https://www.deadbear.io/simple-serverless-fastapi-with-aws-lambda/