Chalice は、Python でサーバーレス アプリを作成するためのフレームワークです。これにより、AWS Lambda を使用するアプリケーションを迅速に作成してデプロイできます。それは以下を提供します:
Rest API を作成できます。
from chalice import Chalice
app = Chalice ( app_name = "helloworld" )
@ app . route ( "/" )
def index ():
return { "hello" : "world" }
定期的に実行されるタスク:
from chalice import Chalice , Rate
app = Chalice ( app_name = "helloworld" )
# Automatically runs every 5 minutes
@ app . schedule ( Rate ( 5 , unit = Rate . MINUTES ))
def periodic_task ( event ):
return { "hello" : "world" }
ラムダ関数を S3 イベントに接続できます。
from chalice import Chalice
app = Chalice ( app_name = "helloworld" )
# Whenever an object is uploaded to 'mybucket'
# this lambda function will be invoked.
@ app . on_s3_event ( bucket = 'mybucket' )
def handler ( event ):
print ( "Object uploaded for bucket: %s, key: %s"
% ( event . bucket , event . key ))
SQS キューと同様に:
from chalice import Chalice
app = Chalice ( app_name = "helloworld" )
# Invoke this lambda function whenever a message
# is sent to the ``my-queue-name`` SQS queue.
@ app . on_sqs_message ( queue = 'my-queue-name' )
def handler ( event ):
for record in event :
print ( "Message body: %s" % record . body )
その他の AWS リソースもいくつかあります。
コードを作成したら、 chalice deploy
実行するだけで、Chalice がアプリのデプロイを処理します。
$チャリスデプロイ ... https://エンドポイント/dev $カール https://エンドポイント/api {"こんにちは世界"}
30 秒以内に起動して実行できます。このプロジェクトを試してみて、Github でフィードバックを共有してください。
ドキュメントはここから入手できます。
このチュートリアルでは、 chalice
コマンド ライン ユーティリティを使用して、基本的な REST API を作成およびデプロイします。このクイックスタートでは Python 3.7 を使用しますが、AWS Chalice は、AWS Lambda でサポートされる Python 3.7 から Python 3.12 までのすべてのバージョンの Python をサポートします。
Python の最新バージョンは、Python ダウンロード ページで見つけることができます。
Chalice をインストールするには、まず Python3.7 で仮想環境を作成してアクティブ化します。
$ python3 --バージョン Python 3.7.3 $ python3 -m venv venv37 $ 。 venv37/bin/activate
次に、 pip
使用して Chalice をインストールします。
$ python3 -m pip 聖杯のインストール
次のコマンドを実行して、Chalice がインストールされていることを確認できます。
$ チャリス --ヘルプ 使用法: 聖杯 [オプション] コマンド [引数]... ...
アプリケーションをデプロイする前に、資格情報が設定されていることを確認してください。 boto3 (AWS SDK for Python) または AWS CLI を実行するように以前にマシンを設定している場合は、このセクションをスキップできます。
AWS の認証情報を初めて構成する場合は、次の手順に従ってすぐに開始できます。
$ mkdir ~/.aws $ cat >> ~/.aws/config [デフォルト] aws_access_key_id=YOUR_ACCESS_KEY_HERE aws_secret_access_key=YOUR_SECRET_ACCESS_KEY region=YOUR_REGION (us-west-2、us-west-1 など)
認証情報を構成するためにサポートされているすべての方法の詳細については、boto3 のドキュメントを参照してください。
次に、 chalice
コマンドを使用して新しいプロジェクトを作成します。
$ チャリス新しいプロジェクト helloworld
これにより、 helloworld
ディレクトリが作成されます。このディレクトリに Cd で移動します。いくつかのファイルが作成されていることがわかります。
$ cd ハローワールド $ ls -la drwxr-xr-x .chalice -rw-r--r-- app.py -rw-r--r-- 要件.txt
.chalice
ディレクトリは今のところ無視して構いません。ここで注目する 2 つの主なファイルはapp.py
とrequirements.txt
です。
app.py
ファイルを見てみましょう。
from chalice import Chalice
app = Chalice ( app_name = 'helloworld' )
@ app . route ( '/' )
def index ():
return { 'hello' : 'world' }
new-project
コマンドは、呼び出し時に JSON 本文{"hello": "world"}
を返す単一のビュー/
定義するサンプル アプリを作成しました。
このアプリをデプロイしてみましょう。 helloworld
ディレクトリにいることを確認し、 chalice deploy
実行します。
$チャリスデプロイ 展開パッケージを作成しています。 IAM ロールの作成: helloworld-dev ラムダ関数の作成: helloworld-dev REST APIの作成 デプロイされたリソース: - Lambda ARN: arn:aws:lambda:us-west-2:12345:function:helloworld-dev - Rest API URL: https://abcd.execute-api.us-west-2.amazonaws.com/api/
これで、API Gateway と Lambda を使用して API を実行できるようになりました。
$カール https://qxea58oupc.execute-api.us-west-2.amazonaws.com/api/ {"こんにちは世界"}
index()
関数から返された辞書に変更を加えてみてください。その後、 chalice deploy
実行して、変更を再デプロイできます。
これで、 chalice
使用して最初のアプリが作成されました。 app.py
ファイルに変更を加え、 chalice deploy
再実行して変更を再デプロイできます。
この時点で、次に実行できるステップがいくつかあります。
Chalice の実験が終了し、クリーンアップしたい場合は、 chalice delete
コマンドを使用できます。Chalice は、 chalice deploy
コマンドの実行時に作成されたすべてのリソースを削除します。
$ 聖杯削除 Rest API の削除: abcd4kwyl4 関数 aws:arn:lambda:region:123456789:helloworld-dev を削除しています IAM ロール helloworld-dev の削除
皆様のご意見もお待ちしております。 https://github.com/aws/chalice/issues で確認したい追加機能の Github 問題を作成してください。 gitter でチャットすることもできます: https://gitter.im/awslabs/chalice