Open9
『AWS Lambda, FastAPI, DynamoDB で作るサーバーレスAPI』のアレコレ
ピン留めされたアイテム
のフィードバックある方は、お気軽にどうぞ。気ままに書いてますので速度はあまり保証できませんが、皆さんが気になってる技術やちょっとした課題に対する回答も(私の知りうる限りで)行います
記事のアウトラインはここにまとめていこう
『開発環境整えて、取り急ぎデプロイだけしてみる』のアウトライン
- 必要なライブラリのインストール
- main.py だけで health エンドポイント書く
- CDK 等でAWSのインフラ作る
- CLIでサクッとデプロイ、APIをブラウザから呼び出す
メモ
- ざっくり1時間くらいあればお手元で試せるくらいのめっちゃ簡単なものを想像。
- CDK というかインフラ作成ツール多すぎて選ぶのがめんどい。AWS CDK にしようかなと思いつつ
『とりあえずAPIの実装加えてみる』のアウトライン
- システム構成の整理(図とか、APIの定義とか、シーケンスとか書いてみます)
- FastAPI のはなし
- エンドポイントの実装加えるローカルで動作確認
- Swagger UIで動作見てみる
- 必要な分だけAPIの実装追加
ゆるぼ
- 作るシステムのアイデアがありません(TODOアプリとかでいいんかな)
参考
『UIをとりあえず作る』のアウトライン
- streamlit の紹介
- Swagger UIをブラウザから見れるようにする
- DBの定義書いて、デプロイ
- なんかいい感じにUIっぽいものを作ります
- デプロイしてみる
ぼやき
- UI あった方が良いと思うから作るけど、streamlit は勉強しないといけない...
『テストを書いて安心感を得る』のアウトライン
- pytest, unittest の話
- moto の紹介
- starlette testclient のはなし
- テストかく
メモ
- moto あれば docker イメージいらないけど、docker 使う方がみんな慣れてるんかな
参考
『CI/CD でデプロイの煩わしさから解放される』のアウトライン
- デプロイ用のコマンドをなんかしら書く(Makefile とか)
- CI/CD のサービス紹介(何使うか決めてません)
- CI/CD の定義を追加、デプロイ
- 動作確認
メモ
- CI/CD のツールも特に希望がなくて難しい。GitHub Actions が手頃でいいかなぁ
『運用用のコマンドをサクッと書く』のアウトライン
- Typer の紹介
- ちょっとしたCLIコマンドの追加
- CI/CD に組み込む
参考
『API で実行が難しそうな処理をどうにか提供する』のアウトライン
- AWS Lambda の制約の話
- いくつかの設計パターンの紹介(SQS, Lambda, ECS, SNS など)
- 紹介したパターンをいくつか使って実装を追加
メモ
- まあ色々できるから深入りしすぎない程度で