Chalice هو إطار عمل لكتابة التطبيقات بدون خادم في لغة بايثون. يتيح لك إنشاء ونشر التطبيقات التي تستخدم AWS Lambda بسرعة. وهو يوفر:
يمكنك إنشاء واجهات برمجة تطبيقات الراحة:
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 مهمة نشر تطبيقك.
نشر الكأس $ ... https://endpoint/dev $ حليقة 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:
$ بيثون 3 - الإصدار بايثون 3.7.3 $ python3 -m venv venv37 $ . venv37/bin/activate
بعد ذلك، سنقوم بتثبيت Chalice باستخدام pip
:
$ python3 -m pip تثبيت الكأس
يمكنك التحقق من تثبيت الكأس عن طريق تشغيل:
الكأس $ - مساعدة الاستخدام: الكأس [خيارات] الأمر [ARGS]... ...
قبل أن تتمكن من نشر تطبيق ما، تأكد من تكوين بيانات الاعتماد. إذا قمت مسبقًا بتكوين جهازك لتشغيل boto3 (AWS SDK for Python) أو AWS CLI، فيمكنك تخطي هذا القسم.
إذا كانت هذه هي المرة الأولى التي تقوم فيها بتكوين بيانات الاعتماد لـ AWS، فيمكنك اتباع الخطوات التالية للبدء بسرعة:
$ mkdir ~/.aws $ القط >> ~/.aws/config [تقصير] aws_access_key_id=YOUR_ACCESS_KEY_HERE aws_secret_access_key=YOUR_SECRET_ACCESS_KEY المنطقة=YOUR_REGION (مثل us-west-2، us-west-1، إلخ)
إذا كنت تريد المزيد من المعلومات حول جميع الطرق المدعومة لتكوين بيانات الاعتماد، فراجع مستندات boto3.
الشيء التالي الذي سنفعله هو استخدام الأمر chalice
لإنشاء مشروع جديد:
$ الكأس مشروع جديد helloworld
سيؤدي هذا إلى إنشاء دليل helloworld
. القرص المضغوط في هذا الدليل. سترى أنه تم إنشاء العديد من الملفات لك:
$ قرص مضغوط مرحبا بالعالم $ ليرة سورية -la 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 إنشاء واجهة برمجة تطبيقات الراحة الموارد المنشورة: - Lambda ARN: arn:aws:lambda:us-west-2:12345:function:helloworld-dev - عنوان URL لواجهة برمجة التطبيقات المتبقية: https://abcd.execute-api.us-west-2.amazonaws.com/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