ChaliceとはAWS用のPythonフレームワークです。簡単な記述でAWS Lambda及びAPI Gatewayを使用したアプリケーションを構築できます。
Chaliceの特徴は以下の通りです。
- 簡潔な構文
- 高速なデプロイ
- ローカルテストが可能
- イベント駆動も対応
簡単な構文
ChaliceはFlaskのように簡単なルーティングが可能です。例えば、基本的なアプリケーションは以下のような簡単なコードで記述できます。
from chalice import Chalice
app = Chalice(app_name='helloworld')
@app.route('/')
def index():
return {'hello': 'world'}
詳しくは後程説明しますが、簡潔なルーティング設定が可能です。
高速なデプロイ
ChaliceはAWS Lambdaに簡単にデプロイできます。Chaliceをインストールし、AWS CLIでアクセスキーを設定すれば、以下のコマンドでデプロイ可能です。
chalice deploy
上記のコマンドを打つことで以下のように自動でラムダ関数の作成、IAMロールの設定、RestAPIのアップデート、リソースのデプロイを行ってくれます。
Creating deployment package.
Updating policy for IAM role: test-project-dev
Updating lambda function: test-project-dev
Updating rest API
Resources deployed:
- Lambda ARN: arn:aws:lambda:ap-northeast-1:975049983102:function:test-project-dev
- Rest API URL:https://...
また、出力されたURLで実際にAPIを使用できます。
ローカルテストが可能
Chaliceはローカルテスト機能があります。以下のコマンドにより、ローカルテスト用のサーバーを起動し、ローカルテストが可能です。
chalice local
するとサーバーが立ち上がります。サーバーに接続すると以下のようにログが出力されます。
Serving on http://127.0.0.1:8000
127.0.0.1 - - [30/Mar/2025 14:16:59] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [30/Mar/2025 14:16:59] "GET /favicon.ico HTTP/1.1" 403 -
イベント駆動も対応
S3イベントやスケジュールイベントも対応可能で、様々なイベントに応じた使い方もできます。
ここでは、Chaliceの一部分のみを紹介しました。AWSで一連のサービスを構築するのであれば、Chaliceを使用すると開発効率が上がると思います。次回以降ではChaliceの具体的な使い方などを解説していきます。
次: