AWS Lambdaなどのマネージドクラウドサービスを中心に、コードとクラウドインフラをデプロイするCLI・YAMLベースのフレームワーク。
zappa/Zappa
Zappaは、管理対象のサーバーを用意せずにPythonのWSGI・ASGIアプリやイベント駆動型関数をAWS LambdaとAPI Gatewayにデプロイします。
- スター
- 3,700
- フォーク
- 394
- 未解決の Issue
- 22
- 最終コミット
- 28 日前
これは何?
Zappaは、Pythonアプリケーションとその仮想環境をLambda互換のアーカイブにまとめ、AWS上にLambda関数、API Gatewayのルート、関連するIAMロールを作成するデプロイツールです。Flask、Django、Bottle、PyramidなどのWSGIアプリと、FastAPI、Starlette、QuartなどのASGIアプリに対応しています。各リクエストは短時間のLambda呼び出しで処理されるため、トラフィックに応じてスケールし、常時稼働するサーバーも必要ありません。
Webホスティングに加えて、cronやrate式を使ったスケジュール実行にも対応しており、Celery beatの代替として利用できます。また、S3へのアップロード、SNSメッセージ、SQSキュー、DynamoDB、KinesisストリームなどのAWSイベントをきっかけに関数を実行できます。さらに、非同期タスクの実行、関数やDjangoの管理コマンドのリモート呼び出し、ログの追跡、ロールバック、SSL証明書を使用したカスタムドメインにも対応しています。
主な機能
- 01WSGI(Flask、Django、Bottle、Pyramid)およびASGI(FastAPI、Starlette、Quart)アプリをAWS Lambdaにデプロイします。
- 02デプロイ時にAPI GatewayのルートとIAMロールを自動作成します。
- 03cronまたはrate式を使って関数をスケジュール実行します。
- 04S3、SNS、SQS、DynamoDBなどのAWSイベントをきっかけに関数を実行します。
- 05非同期タスクの実行、リモート呼び出し、Djangoのmanageコマンドに対応しています。
- 06ACM、Let's Encrypt、または独自に用意したSSL証明書を使ったカスタムドメインを利用できます。
ユースケース
- 常時稼働するサーバーの費用をかけずに、アクセスの少ないFlaskやDjangoのAPIをホストする。
- Celeryワーカーを管理せずに、AWS上でPythonの定期ジョブを実行する。
- リクエスト量が予測できないFastAPIサービスをデプロイし、トラフィックに応じてスケールさせる。
- Pythonの関数でS3へのアップロードやSQSメッセージを処理する。
クイックスタート
- 1
pipを使って、プロジェクトの仮想環境にZappaをインストールします
pip install zappa - 2
対話形式でデプロイ設定を生成します
zappa init - 3
アプリをAWS Lambdaにデプロイします
zappa deploy <stage>
使う前に知っておきたいこと
- AWSアカウントとAWS認証情報が必要です。また、AWS LambdaとAPI Gatewayでのみ動作します。
- Zappaは、プロジェクト名とは異なる名前の仮想環境にインストールする必要があります。
- API Gatewayのリクエスト時間は30秒に制限されており、デフォルトのIAMポリシーは過度に許可範囲が広くなっています。
収録されている特集
トピック
よくある質問
- Zappa とは?
- Zappaは、管理対象のサーバーを用意せずにPythonのWSGI・ASGIアプリやイベント駆動型関数を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のAPIをホストする。 Celeryワーカーを管理せずに、AWS上でPythonの定期ジョブを実行する。 リクエスト量が予測できないFastAPIサービスをデプロイし、トラフィックに応じてスケールさせる。 Pythonの関数でS3へのアップロードやSQSメッセージを処理する。
- Zappa のインストール方法は?
- pipを使って、プロジェクトの仮想環境にZappaをインストールします: pip install zappa 対話形式でデプロイ設定を生成します: zappa init アプリをAWS Lambdaにデプロイします: zappa deploy <stage>
- Zappa はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/zappa/Zappa
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
依存関係のインストールとデプロイパッケージのビルド機能を備えた、AWS Lambda関数とレイヤー作成用のTerraformモジュール。
AWS Lambda関数のデプロイ、ロールバック、呼び出し、ログ確認、差分表示に対応したシンプルなCLIツール。
CLIとデコレーターによるルーティングを備えた、AWS Lambda上のサーバーレスアプリを開発・デプロイするためのPythonマイクロフレームワーク。
AWS Lambdaなどのサーバーレスプラットフォーム向けに、すぐデプロイできるServerless Frameworkのひな形とサンプルサービスを多数収録。
AWSサーバーレス(Lambda、DynamoDB、S3)で動作する、セルフホスト型でTypeScriptによる拡張が可能なヘッドレスCMS兼Webサイトビルダー。