
FastAPI Cloud 部署指南一条命令将 FastAPI 应用发布到云端【免费下载链接】fastapiFastAPI framework, high performance, easy to learn, fast to code, ready for production项目地址: https://gitcode.com/GitHub_Trending/fa/fastapi本文以 FastAPI 官方部署文档 docs/ko/docs/deployment/fastapicloud.md对应英文原文 docs/en/docs/deployment/fastapicloud.md为核心讲解如何借助由 FastAPI 同一团队打造的FastAPI Cloud托管平台用一条命令完成应用从本地到云端的部署并深入剖析fastapiCLI 的底层实现与安装前提。读完本文你将掌握uv run fastapi deploy的完整用法、FastAPI Cloud 替你处理的核心运维事务HTTPS、按请求自动扩缩容的复制等以及当你不使用托管平台时如何在其他云服务商或自建服务器上完成等效部署。一条命令完成部署FastAPI Cloud 将部署体验压缩到了极致只需在项目目录下执行一条命令CLI 就会自动检测你的 FastAPI 应用并部署到云端$ uv run fastapi deploy Deploying to FastAPI Cloud... ✅ Deployment successful! Ready the chicken! Your app is ready at https://myapp.fastapicloud.dev命令执行后CLI 会完成以下工作自动检测应用无需手动指定入口文件或应用对象CLI 会智能识别你的 FastAPI 应用自动完成认证如果当前未登录浏览器会自动打开引导你完成登录认证流程输出访问地址部署成功后终端会直接给出形如https://myapp.fastapicloud.dev的应用公网 URL。至此部署全部完成你可以立即通过该 URL 访问应用。✨fastapi 命令的底层来源fastapi命令并不是 FastAPI 框架本体自带的而是由独立的fastapi-cli包提供的。从源码 fastapi/cli.py 可以看到fastapi模块只是对fastapi_cli.cli.main的薄封装try: from fastapi_cli.cli import main as cli_main except ImportError: # pragma: no cover cli_main None # type: ignore # ty: ignore[unused-ignore-comment] def main() - None: if not cli_main: # type: ignore[truthy-function] message To use the fastapi command, please install fastapi[standard]:\n\n\tpip install fastapi[standard]\n print(message) raise RuntimeError(message) # noqa: B904 cli_main()同时项目在 pyproject.toml 中注册了命令行入口点[project.scripts] fastapi fastapi.cli:main因此除了uv run fastapi deploy之外以下两种方式同样可以调用该命令$ fastapi deploy$ python -m fastapi deploy后者的可行性来自 fastapi/main.py它直接调用了fastapi.cli的main函数。安装前提fastapi[standard]如果本机尚未安装fastapi-cli直接运行fastapi命令会得到明确提示需要先安装fastapi[standard]$ pip install fastapi[standard]或使用uv安装$ uv add fastapi[standard]从 pyproject.toml 的standard可选依赖组可以看出这一组依赖不仅包含fastapi-cli[standard] 0.0.32提供fastapi命令与 FastAPI Cloud 部署能力还一并带来了生产环境常用的配套组件uvicorn[standard]ASGI 服务器、httpx测试客户端、jinja2模板、python-multipart表单与文件上传、email-validator邮箱校验等。值得注意的一个细节是项目还提供了standard-no-fastapi-cloud-cli可选依赖组见 pyproject.toml它与standard的唯一区别是使用fastapi-cli[standard-no-fastapi-cloud-cli]——即不包含 FastAPI Cloud 部署相关 CLI 能力。这说明fastapi命令本身用于本地开发与常规运行与 FastAPI Cloud 部署能力是解耦设计的如果你不希望使用 FastAPI Cloud完全可以只安装不含该能力的那一组依赖。FastAPI Cloud 是什么FastAPI Cloud由FastAPI 的同一作者与团队构建其目标是用最小的精力简化 API 的**构建building、部署deploying与访问accessing**全流程。它希望把使用 FastAPI 编写应用时那种流畅的开发者体验Developer Experience同样带到云端部署环节写代码时有多顺手部署时就有多省心。除此之外FastAPI Cloud 还替你处理了部署应用时通常会遇到的大部分基础设施事务例如HTTPS自动为你的应用配置与维护 TLS 证书无需自行搭建 TLS 终止代理复制Replication与自动扩缩容根据请求量自动增加或减少运行实例在流量高峰时扩容、低谷时缩容以及其他部署相关的配套能力。这些事务与 Deployment 部署概念 中强调的 HTTPS、启动运行、崩溃重启、多进程复制、内存占用等核心关注点一一对应——只不过在 FastAPI Cloud 上绝大部分都由平台代为完成。同时需要说明的事实是FastAPI Cloud 是FastAPI and friends开源项目的主要赞助商与资金提供者。✨部署到其他云服务商FastAPI 是开源且基于标准的例如 ASGI、OpenAPI因此它并不绑定任何特定平台——任何云服务商都可以用来部署 FastAPI 应用。在 Deployment - 云服务商 一章中官方明确表示大多数主流云服务商都提供了部署 FastAPI 的官方指南你只需跟随所选云服务商提供的指南完成部署即可。也就是说FastAPI Cloud 只是官方团队提供的最顺滑的选项之一而不是唯一选项。你可以根据成本、地域、合规等业务需求自由选择云服务商。自建服务器部署如果你希望完全掌控部署环境官方同样支持在自己的服务器上部署 FastAPI 应用。本仓库的Deployment部署指南系列会循序渐进地讲解所有细节帮助你理解部署背后到底发生了什么、需要满足哪些条件以及如何完全自主地在自己的服务器上部署 FastAPI 应用。该系列的核心章节包括部署总览与部署策略什么是部署以及主流部署策略的宏观视角部署核心概念HTTPS 安全、开机自启、崩溃重启、多进程复制与内存、启动前的前置步骤等关键概念是理解一切部署方案的基础HTTPS加密原理与 TLS 终止代理Traefik、Caddy、Nginx、HAProxy 等的选型FastAPI in Containers - Docker容器镜像与 Docker/Kubernetes 化部署的实践服务器与多进程Uvicorn 多 worker 进程的复制策略与内存规划手动部署不使用容器、直接运行服务器程序的手工部署路径关于 FastAPI 版本0.x版本语义化版本规范下的版本锁定如fastapi[standard]0.112.0,0.113.0与升级策略。如果你的项目对运维控制力有更高要求或者希望完全脱离第三方托管服务可以沿着这套指南逐章实践最终具备完全自主部署的能力。小结使用FastAPI Cloud时uv run fastapi deploy一条命令即可完成自动检测应用、登录认证、云端部署与 HTTPS 配置并借助按请求自动扩缩容的复制能力承载流量fastapi命令由fastapi-cli提供需要先安装fastapi[standard]若不想使用 FastAPI Cloud 能力可选standard-no-fastapi-cloud-cli依赖组FastAPI 是开源且基于标准的同样可以部署到任意其他云服务商或参考本仓库的 Deployment 指南系列在自己的服务器上完成自主部署。【免费下载链接】fastapiFastAPI framework, high performance, easy to learn, fast to code, ready for production项目地址: https://gitcode.com/GitHub_Trending/fa/fastapi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考