A CLI and YAML-based framework for deploying code and cloud infrastructure, mainly on AWS Lambda and other managed cloud services.
zappa/Zappa
Zappa deploys Python WSGI and ASGI web apps and event-driven functions to AWS Lambda and API Gateway, with no servers to manage.
- Stars
- 3,700
- Forks
- 395
- Open issues
- 22
- Last commit
- 29 days ago
What is it?
Zappa is a deployment tool that packages a Python application and its virtual environment into a Lambda-compatible archive, then creates the Lambda function, API Gateway routes and the related IAM roles on AWS. It supports WSGI apps such as Flask, Django, Bottle and Pyramid, and ASGI apps such as FastAPI, Starlette and Quart. Each request is handled by a short-lived Lambda invocation, so the app scales with traffic and has no always-on server to run.
Beyond web hosting, Zappa can run functions on a schedule using cron or rate expressions, as a replacement for a Celery beat setup, and can trigger functions from AWS events such as S3 uploads, SNS messages, SQS queues, DynamoDB and Kinesis streams. It also provides asynchronous task execution, remote invocation of functions and Django management commands, log tailing, rollbacks, and custom domains with SSL certificates.
Key features
- 01Deploys WSGI (Flask, Django, Bottle, Pyramid) and ASGI (FastAPI, Starlette, Quart) apps to AWS Lambda.
- 02Creates API Gateway routes and IAM roles automatically during deployment.
- 03Runs scheduled functions using cron or rate expressions.
- 04Triggers functions from AWS events such as S3, SNS, SQS and DynamoDB.
- 05Supports asynchronous task execution, remote invocation and Django manage commands.
- 06Offers custom domains with ACM, Let's Encrypt or self-provided SSL certificates.
Use cases
- Hosting a low-traffic Flask or Django API without paying for an always-on server.
- Running periodic Python jobs on AWS without maintaining a Celery worker.
- Deploying a FastAPI service that scales with unpredictable request volume.
- Processing S3 uploads or SQS messages with Python functions.
Quick start
- 1
Install Zappa with pip into your project's virtual environment
pip install zappa - 2
Generate your deployment settings interactively
zappa init - 3
Deploy your app to AWS Lambda
zappa deploy <stage>
Things to know
- Requires an AWS account and AWS credentials, and runs only on AWS Lambda and API Gateway.
- Zappa must be installed in a virtual environment whose name differs from the project name.
- API Gateway limits requests to 30 seconds, and the default IAM policy is overly permissive.
In collections
Topics
FAQ
- What is Zappa?
- Zappa deploys Python WSGI and ASGI web apps and event-driven functions to AWS Lambda and API Gateway, with no servers to manage. Zappa is a deployment tool that packages a Python application and its virtual environment into a Lambda-compatible archive, then creates the Lambda function, API Gateway routes and the related IAM roles on AWS. It supports WSGI apps such as Flask, Django, Bottle and Pyramid, and ASGI apps such as FastAPI, Starlette and Quart. Each request is handled by a short-lived Lambda invocation, so the app scales with traffic and has no always-on server to run.
- Is Zappa free to use? What license does it have?
- Zappa is open source under the MIT license. Check the license terms before using it in commercial products.
- Is Zappa still maintained?
- Actively maintained. The last commit to Zappa was on Oct 8, 2026.
- What can I use Zappa for?
- Hosting a low-traffic Flask or Django API without paying for an always-on server. Running periodic Python jobs on AWS without maintaining a Celery worker. Deploying a FastAPI service that scales with unpredictable request volume. Processing S3 uploads or SQS messages with Python functions.
- How do I install Zappa?
- Install Zappa with pip into your project's virtual environment: pip install zappa Generate your deployment settings interactively: zappa init Deploy your app to AWS Lambda: zappa deploy <stage>
- Where can I get Zappa?
- The source code and installation instructions are on GitHub: https://github.com/zappa/Zappa
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Terraform module for creating AWS Lambda functions and layers, with built-in dependency installation and deployment package building.
A minimal command-line deployment tool for AWS Lambda functions, covering deploy, rollback, invoke, logs and diff.
A Python microframework for writing and deploying serverless apps on AWS Lambda, with a CLI and decorator-based routing.
A large collection of ready-to-deploy Serverless Framework boilerplates and example services for AWS Lambda and other serverless platforms.
Self-hosted, TypeScript-extensible headless CMS and website builder that runs on AWS serverless (Lambda, DynamoDB, S3).