佈署
開發用 fastapi dev(自動重載、較鬆的預設)。上線改用 fastapi run 或直接跑 Uvicorn / Gunicorn,關掉 reload,並把應用放在反向代理後面。
開發與正式的指令
等價的常見寫法是指定 Uvicorn:
多 worker 時由行程管理員或容器編排負責(例如 Gunicorn 搭配 uvicorn.workers.UvicornWorker,或 Kubernetes 開多個 replica)。worker 數量通常跟 CPU 有關,沒有萬能數字;先量測再調。
記得在 pyproject.toml 設定 entrypoint,CLI 與官方編輯器擴充套件才找得到應用:
上線前最少要處理的幾件事
- 設定值:密鑰、資料庫 URL 放環境變數,可用
pydantic-settings。不要把 secret 寫進 Git。 - CORS:只允許真正的前端來源。
- HTTPS:交給反向代理(Nginx、Caddy、雲端 Load Balancer)或平台處理,應用本身通常聽 HTTP。
- Proxy headers:前面有代理時,啟用對應設定,否則
request.url、HTTPS 轉向會錯。 - 健康檢查:提供
/health給負載平衡探測。 - 不要開 debug reload:reload 會多一個監看行程,也不該暴露除錯頁。
Docker 的最小思路:映像只裝正式依賴、用非 root 使用者、CMD 跑 fastapi run --host 0.0.0.0 --port 8000,由編排工具做重啟與擴展。
官方雲端與其他平台
原作者團隊提供 FastAPI Cloud。登入後可用:
這是官方支援的一鍵選項,不是唯一選項。FastAPI 是開源、基於標準的 ASGI 應用,也能佈到任何能跑 Uvicorn 的地方:自己的 VPS、Fly.io、Cloud Run、Azure、AWS…依你現有的基礎設施選即可。
想看「從零寫一支 API 再佈上去」的現場示範,原作者在 PyCon Italia 2025 的演講已收在 影音教學。
進一步學習
- 官方:部署
- 官方:FastAPI CLI
- 官方:關於 HTTPS
- Uvicorn 部署
- FastAPI Cloud
- Full Stack FastAPI Template:含 Docker Compose 與 CI 範例
- SQLModel:同一作者的 SQL 資料庫工具,常用於完整專案