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://endpoint/api {"Привет, мир"}
Начало работы менее чем за 30 секунд. Попробуйте этот проект и поделитесь с нами своим мнением здесь, на Github.
Документация доступна здесь.
В этом руководстве вы будете использовать утилиту командной строки chalice
для создания и развертывания базового API REST. В этом кратком руководстве используется Python 3.7, но AWS Chalice поддерживает все версии Python, поддерживаемые AWS Lambda, включая Python 3.7–3.12.
Последние версии Python можно найти на странице загрузки Python.
Чтобы установить Chalice, мы сначала создадим и активируем виртуальную среду в Python3.7:
$ python3 --версия Питон 3.7.3 $ python3 -m венв venv37 $ . venv37/bin/активировать
Далее мы установим Chalice с помощью pip
:
$ python3 -m pip установить чашу
Вы можете убедиться, что чаша установлена, выполнив:
$ чаша --help Использование: чаша [ОПЦИИ] КОМАНДА [ARGS]... ...
Прежде чем вы сможете развернуть приложение, убедитесь, что у вас настроены учетные данные. Если вы ранее настроили свой компьютер для запуска boto3 (AWS SDK для Python) или интерфейса командной строки AWS, вы можете пропустить этот раздел.
Если вы впервые настраиваете учетные данные для AWS, вы можете выполнить следующие действия, чтобы быстро приступить к работе:
$ mkdir ~/.aws $ кот >> ~/.aws/config [по умолчанию] aws_access_key_id=ВАШ_ACCESS_KEY_ЗДЕСЬ aws_secret_access_key=ВАШ_SECRET_ACCESS_KEY регион = ВАШ_РЕГИОН (например, США-Запад-2, США-Запад-1 и т. д.)
Если вам нужна дополнительная информация обо всех поддерживаемых методах настройки учетных данных, см. документацию boto3.
Следующее, что мы сделаем, это воспользуемся командой chalice
для создания нового проекта:
$ chalice новый проект helloworld
Это создаст каталог helloworld
. Перейдите в этот каталог. Вы увидите, что для вас было создано несколько файлов:
$ компакт-диск приветмир $ лс -ла drwxr-xr-x .chalice -rw-r--r-- app.py -rw-r--r-- требования.txt
Вы можете пока игнорировать каталог .chalice
, мы сосредоточимся на двух основных файлах — 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 Развернутые ресурсы: - Лямбда-ARN: arn:aws:lambda:us-west-2:12345:function:helloworld-dev - URL-адрес Rest API: https://abcd.execute-api.us-west-2.amazonaws.com/api/
Теперь у вас есть запущенный API с использованием API Gateway и Lambda:
$ завиток 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
Мы также хотели бы услышать ваше мнение. Пожалуйста, создайте любые проблемы Github для дополнительных функций, которые вы хотели бы видеть, на https://github.com/aws/chalice/issues. Вы также можете пообщаться с нами в Gitter: https://gitter.im/awslabs/chalice