5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Fast API x Lambdaでmono lambdaができるMangum

Last updated at Posted at 2022-12-22

お約束

はじめに

皆さん、AWS Lambdaはお好きですか?私は大好きです。
さて、皆様はPython x lambdaでAPIをつくるときどうしてますか?
Chaliceを使う?シングルlambdaでルーティングはAPI gateway任せてますか?

多分、皆様の誰でも普段使ってるフレームワークのdjangoやStarlette、FastAPIとかをそのままlambdanに持っていきたいと思ったことないでしょうか?けど、なんか無理ぽいなと試したり、感覚で感じ取られてないでしょうか?

その夢叶えられます。そうMangumならね
https://mangum.io/asgi-frameworks/

Mangum使ってみた

さて、案ずるより産むが易しでコードを見てみましょう!

from fastapi import FastAPI
from mangum import Mangum

app = FastAPI()


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


@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

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

これだけで、lambdaでFastAPIが使えるようになります!
簡単でしょ!

終わりに

サーバーレスフレームワーク大好きな皆様は、資産の移行性やベンダーロックについて認識しておりながらも渋々便利だか使っていたかと思います。Mangumを使えば最初はlambda上でAPIを作って規模が大きくなったり、非機能要件が上がった際にはECSに切り替えるなどして移行性やベンダーロックを気にしないでソリューションを作れるようになります。ぜひ、使ってみて下さい!

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?