Repolode
zappa

zappa/Zappa

Zappa 可将 Python Web 应用部署到 AWS Lambda 与 API Gateway,无需维护服务器。

Star
3,700
Fork
395
未关闭 Issue
22
最近提交
30天前

这是什么?

Zappa 是一个部署工具,可将 Python 应用及其虚拟环境打包为 Lambda 兼容的压缩包,并在 AWS 上自动创建 Lambda 函数、API Gateway 路由和相关 IAM 角色。它支持 Flask、Django、Bottle、Pyramid 等 WSGI 应用,也支持 FastAPI、Starlette、Quart 等 ASGI 应用。每个请求由短生命周期的 Lambda 调用处理,应用随流量自动扩缩,无需常驻服务器。

除了 Web 托管,Zappa 还可以基于 cron 或 rate 表达式定时运行函数,可替代部分 Celery 定时任务的场景;也可以由 S3 上传、SNS、SQS、DynamoDB、Kinesis 等 AWS 事件触发函数。此外,它还支持异步任务、远程调用函数与 Django 管理命令、日志查看、版本回滚,以及绑定自定义域名和 SSL 证书。

核心功能

  • 01将 WSGI(Flask、Django、Bottle、Pyramid)和 ASGI(FastAPI、Starlette、Quart)应用部署到 AWS Lambda。
  • 02部署时自动创建 API Gateway 路由与 IAM 角色。
  • 03支持使用 cron 或 rate 表达式定时执行函数。
  • 04可由 S3、SNS、SQS、DynamoDB 等 AWS 事件触发函数。
  • 05支持异步任务、远程调用函数和 Django 管理命令。
  • 06支持通过 ACM、Let's Encrypt 或自有证书绑定自定义域名并配置 SSL。

适用场景

  • 在不维护常驻服务器的情况下托管低流量的 Flask 或 Django 接口。
  • 在 AWS 上运行周期性 Python 任务,无需维护 Celery worker。
  • 部署流量波动较大的 FastAPI 服务。
  • 用 Python 函数处理 S3 上传或 SQS 消息。

快速上手

  1. 1

    在项目的虚拟环境中用 pip 安装 Zappa

    pip install zappa
  2. 2

    交互式生成部署配置

    zappa init
  3. 3

    将应用部署到 AWS Lambda

    zappa deploy <stage>

使用前须知

  • 需要 AWS 账户和 AWS 凭证,且仅运行于 AWS Lambda 和 API Gateway。
  • Zappa 必须安装在虚拟环境中,且虚拟环境名称不能与项目名称相同。
  • API Gateway 请求时限为 30 秒,默认 IAM 策略权限过宽。

收录于专题

标签

常见问题

Zappa 是什么?
Zappa 可将 Python Web 应用部署到 AWS Lambda 与 API Gateway,无需维护服务器。 Zappa 是一个部署工具,可将 Python 应用及其虚拟环境打包为 Lambda 兼容的压缩包,并在 AWS 上自动创建 Lambda 函数、API Gateway 路由和相关 IAM 角色。它支持 Flask、Django、Bottle、Pyramid 等 WSGI 应用,也支持 FastAPI、Starlette、Quart 等 ASGI 应用。每个请求由短生命周期的 Lambda 调用处理,应用随流量自动扩缩,无需常驻服务器。
Zappa 可以免费使用吗?用的什么许可证?
Zappa 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
Zappa 还在维护吗?
活跃维护中。Zappa 最近一次提交是在 2026年10月8日。
Zappa 适合用来做什么?
在不维护常驻服务器的情况下托管低流量的 Flask 或 Django 接口。 在 AWS 上运行周期性 Python 任务,无需维护 Celery worker。 部署流量波动较大的 FastAPI 服务。 用 Python 函数处理 S3 上传或 SQS 消息。
Zappa 怎么安装和运行?
在项目的虚拟环境中用 pip 安装 Zappa: pip install zappa 交互式生成部署配置: zappa init 将应用部署到 AWS Lambda: zappa deploy <stage>
在哪里获取 Zappa?
源代码和安装说明在 GitHub 上:https://github.com/zappa/Zappa

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目