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" }
คุณสามารถเชื่อมต่อฟังก์ชัน lambda กับเหตุการณ์ 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 จะดูแลการ Deploy แอปของคุณ
$ ถ้วยปรับใช้ - https://endpoint/dev $curl https://endpoint/api {"สวัสดี": "โลก"}
พร้อมใช้งานภายในเวลาไม่ถึง 30 วินาที ทดลองใช้โปรเจ็กต์นี้และแบ่งปันความคิดเห็นของคุณกับเราที่นี่บน Github
เอกสารมีอยู่ที่นี่
ในบทช่วยสอนนี้ คุณจะใช้ยูทิลิตีบรรทัดคำสั่ง chalice
เพื่อสร้างและปรับใช้ REST API พื้นฐาน การเริ่มต้นอย่างรวดเร็วนี้ใช้ Python 3.7 แต่ AWS Chalice รองรับ python ทุกเวอร์ชันที่รองรับโดย AWS Lambda ซึ่งรวมถึง Python 3.7 ถึง python 3.12
คุณสามารถค้นหา Python เวอร์ชันล่าสุดได้ในหน้าดาวน์โหลด Python
ในการติดตั้ง Chalice ก่อนอื่นเราจะสร้างและเปิดใช้งานสภาพแวดล้อมเสมือนใน python3.7:
$ python3 --version หลาม 3.7.3 $ python3 -m venv venv37 - venv37/bin/เปิดใช้งาน
ต่อไปเราจะติดตั้ง Chalice โดยใช้ pip
:
$ python3 -m pip ติดตั้งถ้วย
คุณสามารถตรวจสอบว่าคุณได้ติดตั้งถ้วยไว้แล้วโดยเรียกใช้:
$ ถ้วย --help การใช้งาน: ถ้วย [ตัวเลือก] คำสั่ง [ARGS]... -
ก่อนที่คุณจะปรับใช้แอปพลิเคชันได้ ตรวจสอบให้แน่ใจว่าคุณได้กำหนดค่าข้อมูลรับรองแล้ว หากคุณได้กำหนดค่าเครื่องของคุณให้รัน boto3 (AWS SDK สำหรับ Python) หรือ AWS CLI ก่อนหน้านี้ คุณสามารถข้ามส่วนนี้ได้
หากนี่เป็นครั้งแรกที่คุณกำหนดค่าข้อมูลประจำตัวสำหรับ AWS คุณสามารถทำตามขั้นตอนเหล่านี้เพื่อเริ่มต้นอย่างรวดเร็ว:
$ mkdir ~/.aws $ แมว >> ~/.aws/config [ค่าเริ่มต้น] aws_access_key_id=ของคุณ_ACCESS_KEY_HERE aws_secret_access_key=ของคุณ_SECRET_ACCESS_KEY ภูมิภาค=ของคุณ_REGION (เช่น us-west-2, us-west-1 ฯลฯ)
หากคุณต้องการข้อมูลเพิ่มเติมเกี่ยวกับวิธีการที่รองรับทั้งหมดสำหรับการกำหนดค่าข้อมูลรับรอง โปรดดูเอกสาร boto3
สิ่งต่อไปที่เราจะทำคือใช้คำสั่ง chalice
เพื่อสร้างโปรเจ็กต์ใหม่:
$ chalice โครงการใหม่ helloworld
สิ่งนี้จะสร้างไดเร็กทอรี helloworld
ซีดีลงในไดเร็กทอรีนี้ คุณจะเห็นไฟล์หลายไฟล์ถูกสร้างขึ้นสำหรับคุณ:
$ซีดีสวัสดีชาวโลก $ ls -la drwxr-xr-x .ถ้วย -rw-r--r-- app.py -rw-r--r--requirements.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 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