Chalice adalah kerangka kerja untuk menulis aplikasi tanpa server dengan python. Hal ini memungkinkan Anda dengan cepat membuat dan menerapkan aplikasi yang menggunakan AWS Lambda. Ini menyediakan:
Anda dapat membuat Rest API:
from chalice import Chalice
app = Chalice ( app_name = "helloworld" )
@ app . route ( "/" )
def index ():
return { "hello" : "world" }
Tugas yang dijalankan secara berkala:
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" }
Anda dapat menghubungkan fungsi lambda ke acara 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 ))
Serta antrian 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 )
Dan beberapa sumber daya AWS lainnya.
Setelah Anda menulis kode, Anda cukup menjalankan chalice deploy
dan Chalice akan menangani penerapan aplikasi Anda.
$ piala disebarkan ... https://titik akhir/dev $ keriting https://endpoint/api {"halo": "dunia"}
Aktif dan berjalan dalam waktu kurang dari 30 detik. Cobalah proyek ini dan bagikan tanggapan Anda kepada kami di sini di Github.
Dokumentasi tersedia di sini.
Dalam tutorial ini, Anda akan menggunakan utilitas baris perintah chalice
untuk membuat dan menerapkan REST API dasar. Mulai cepat ini menggunakan Python 3.7, tetapi AWS Chalice mendukung semua versi python yang didukung oleh AWS Lambda, yang mencakup Python 3.7 hingga python 3.12.
Anda dapat menemukan versi terbaru python di halaman unduh Python.
Untuk menginstal Chalice, pertama-tama kita akan membuat dan mengaktifkan lingkungan virtual di python3.7:
$ python3 --versi Python 3.7.3 $ python3 -m venv venv37 $. venv37/bin/aktifkan
Selanjutnya kita akan menginstal Chalice menggunakan pip
:
$ python3 -m pip install piala
Anda dapat memverifikasi bahwa Anda telah memasang piala dengan menjalankan:
$ piala --membantu Penggunaan: piala [PILIHAN] PERINTAH [ARGS]... ...
Sebelum Anda dapat menyebarkan aplikasi, pastikan Anda telah mengonfigurasi kredensial. Jika sebelumnya Anda telah mengonfigurasi mesin Anda untuk menjalankan boto3 (AWS SDK for Python) atau AWS CLI maka Anda dapat melewati bagian ini.
Jika ini adalah pertama kalinya Anda mengonfigurasi kredensial untuk AWS, Anda dapat mengikuti langkah-langkah berikut untuk memulai dengan cepat:
$ mkdir ~/.aws $kucing >> ~/.aws/config [bawaan] aws_access_key_id=YOUR_ACCESS_KEY_HERE aws_secret_access_key=YOUR_SECRET_ACCESS_KEY region=YOUR_REGION (seperti us-west-2, us-west-1, dll)
Jika Anda ingin informasi selengkapnya tentang semua metode yang didukung untuk mengonfigurasi kredensial, lihat dokumen boto3.
Hal selanjutnya yang akan kita lakukan adalah menggunakan perintah chalice
untuk membuat proyek baru:
$ piala proyek baru helloworld
Ini akan membuat direktori helloworld
. CD ke dalam direktori ini. Anda akan melihat beberapa file telah dibuat untuk Anda:
$cd halo dunia $ ls-la drwxr-xr-x .chalice -rw-r--r-- aplikasi.py -rw-r--r-- persyaratan.txt
Anda dapat mengabaikan direktori .chalice
untuk saat ini, dua file utama yang akan kita fokuskan adalah app.py
dan requirements.txt
.
Mari kita lihat file app.py
:
from chalice import Chalice
app = Chalice ( app_name = 'helloworld' )
@ app . route ( '/' )
def index ():
return { 'hello' : 'world' }
Perintah new-project
membuat aplikasi sampel yang mendefinisikan satu tampilan, /
, yang bila dipanggil akan mengembalikan isi JSON {"hello": "world"}
.
Mari kita terapkan aplikasi ini. Pastikan Anda berada di direktori helloworld
dan jalankan chalice deploy
:
$ piala disebarkan Membuat paket penerapan. Membuat peran IAM: helloworld-dev Membuat fungsi lambda: helloworld-dev Membuat API Istirahat Sumber daya yang dikerahkan: - Lambda ARN: arn:aws:lambda:us-west-2:12345:function:helloworld-dev - URL API lainnya: https://abcd.execute-api.us-west-2.amazonaws.com/api/
Anda sekarang memiliki API yang aktif dan berjalan menggunakan API Gateway dan Lambda:
$ keriting https://qxea58oupc.execute-api.us-west-2.amazonaws.com/api/ {"halo": "dunia"}
Coba buat perubahan pada kamus yang dikembalikan dari fungsi index()
. Anda kemudian dapat menerapkan ulang perubahan Anda dengan menjalankan chalice deploy
.
Anda sekarang telah membuat aplikasi pertama Anda menggunakan chalice
. Anda dapat melakukan modifikasi pada file app.py
dan menjalankan kembali chalice deploy
untuk menerapkan ulang perubahan Anda.
Pada tahap ini, ada beberapa langkah selanjutnya yang dapat Anda ambil.
Jika Anda sudah selesai bereksperimen dengan Chalice dan ingin melakukan pembersihan, Anda dapat menggunakan perintah chalice delete
, dan Chalice akan menghapus semua sumber daya yang dibuatnya saat menjalankan perintah chalice deploy
.
$ piala hapus Menghapus Istirahat API: abcd4kwyl4 Menghapus fungsi aws:arn:lambda:region:123456789:helloworld-dev Menghapus Peran IAM helloworld-dev
Kami juga ingin mendengar pendapat Anda. Silakan buat masalah Github apa pun untuk fitur tambahan yang ingin Anda lihat di https://github.com/aws/chalice/issues. Anda juga dapat mengobrol dengan kami di gitter: https://gitter.im/awslabs/chalice