Repolode
zappa

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. 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の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 の数値は毎日更新されます。

関連プロジェクト