Skip to content

FastAPI で実装されたモジュラモノリスアーキテクチャのアプリ

Notifications You must be signed in to change notification settings

gtaiyou24/modular-monolith-fastapi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛠️ モジュラモノリスアーキテクチャ×FastAPI

Test Lighthouse

📚 使い方

clone したら、初回のセットアップを行なってください。

make dev/setup
🚀 起動する / 停止する
make dev/up  # 起動する
make dev/down  # 停止する
🗄️ ローカルDBに接続する
データベース 接続コマンド
Redis make db/redis
MySQL make db/mysql
PostgreSQL make db/postgresql
✔️ テストを実行する

バックエンド(FastAPI)のテストを実行する場合は、下記のコマンドを実行してください。

make dev/test
📦 MQにプッシュ
gcloud pubsub topics publish subscriber-topic --message "{\"publisher_name\": \"api-gateway\", \"event_type\": \"health_check\", \"greeting\": \"こんにちは\"}"
🔌 OpenAPI から TypeScript のクライアントコードを生成する
make dev/codegen

利用しているパッケージは「openapi-typescript | OpenAPI TypeScript」です。

🌏 インフラを構築する
  1. Google Cloud のコンソール画面 にてプロジェクトを作成してください
  2. お支払い画面 にて請求先アカウントをリンクしてください
  3. infrastructure/terraform/gcp/environments/production/terraform.tfvars に情報を記載してください
  4. infrastructure/terraform/gcp/oidc/terraform.tfvars に情報を記載してください

システムを構築するにあたり、ローカル PC にて Google 認証を完了させてください。

# Google Cloud SDK と Google アカウントを連携させる
gcloud auth application-default login

# プロジェクトを確認
gcloud projects list

# プロジェクトを変更する
gcloud config set project {PROJECT_ID}

最後に Terraform を実行し、システムを構築してください。

make terraform/setup

make terraform/production/init  # 初めて実行する場合のみ初期化する
make terraform/production/plan  # 定義内容のチェック

make terraform/production/apply  # インフラを構築

make terraform/production/init-migrate-state  # Cloud Storage に tfstate ファイルを移行

ドメインの設定は「お名前.com で取得したドメインで Google の LB + Cloud Run にアクセスできるようにする」を参照してください。 メール送信サービスに Resend を利用する場合は、⚙️ Resendで独自ドメインを使うための設定手順 をもとに設定をしてください。

システムを削除する場合は以下のコマンドを実行してください。

make terraform/destroy

🔗 Appendix

🖥️ SaaS
🎨 Design
🔍 SEO

About

FastAPI で実装されたモジュラモノリスアーキテクチャのアプリ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published