
serverless [email protected]
إطار عمل CLI لنشر وإدارة التطبيقات بدون خادم (serverless) على AWS Lambda، مع بنية تحتية بتنسيق YAML، وتطوير محلي، ودعم لبيئات تشغيل متعددة اللغات.
Serverless Framework – يسهّل استخدام AWS Lambda وغيرها من الخدمات السحابية المُدارة لبناء تطبيقات تتوسع تلقائيًا، ولا تكلف شيئًا عند الخمول، وتتطلب صيانة منخفضة جدًا.
Serverless Framework هو أداة سطر أوامر تستخدم بناء جملة YAML بسيطًا لنشر كلٍّ من الكود والبنية التحتية السحابية اللازمة لتشغيل العديد من حالات استخدام التطبيقات اللاخادمية، مثل واجهات البرمجة (APIs)، والواجهات الأمامية، وخطوط معالجة البيانات، والمهام المجدولة. إنه إطار متعدد اللغات يدعم Node.js وTypescript وPython وGo وJava والمزيد. كما أنه قابل للتوسيع بالكامل عبر أكثر من 1,000 إضافة تضيف المزيد من حالات الاستخدام وسير العمل اللاخادمي إلى الإطار.
يتم صيانته بنشاط من قبل Serverless Inc.
Serverless Framework - V.4
يوليو 2026 – يستمر V.4 في تقديم تحديثات مهمة. راجعها جميعًا أدناه. أضافت الإصدارات الأخيرة Sandboxes (حوسبة معزولة وقصيرة الأمد على AWS Lambda)، ودعمًا أصليًا لـ Amazon Bedrock AgentCore، وManaged Instances، وDurable Functions، و AWS Login & SSO مدمجًا. وكما هو الحال دائمًا، نحن متحمسون لمستقبل اللاخادمية أكثر من أي وقت مضى.
الميزات الجديدة في V.4
فيما يلي قائمة بكل ما هو جديد في V.4 حتى الآن:
- Sandboxes – نشر بيئات حوسبة معزولة وقصيرة الأمد على AWS Lambda — مثالية لأحمال العمل غير الموثوقة أو المؤقتة لكل جلسة مثل وكلاء الذكاء الاصطناعي وتنفيذ الكود. مزيد من المعلومات هنا.
- دعم Amazon Bedrock AgentCore – تعريف وكلاء الذكاء الاصطناعي والذاكرة والأدوات والبوابات والمتصفحات ومفسّري الكود مباشرةً في
serverless.ymlعبر خاصيةai، وإدارتها باستخدام أوامرserverless agent. مزيد من المعلومات هنا. - تسجيل الدخول إلى AWS و SSO – إعداد بيانات اعتماد AWS عبر تدفقات قائمة على المتصفح باستخدام
serverless login awsوserverless login aws sso. - فروقات النشر (Deployment Diffs) – معاينة كيف سيغيّر النشر مجموعة AWS CloudFormation المباشرة الخاصة بك قبل النشر باستخدام
serverless diff. - أمر المطابقة (Reconcile Command) – الحفاظ على مزامنة سجلات الاستخدام مع حسابات AWS الخاصة بك عند إزالة الحزم خارج CLI، عبر
serverless reconcile. - Managed instances – دعم أصلي لتنفيذ Lambda المستند إلى EC2 لتمكين إنتاجية أعلى، وسعة يمكن التنبؤ بها، وأحمال عمل طويلة الأمد.
- Durable functions – دعم مدمج لسير العمل الحالة والطويلة الأمد والتنسيقات الطويلة التشغيل.
- وضع عزل المستأجرين في Lambda: استخدم وضع عزل المستأجرين لإنشاء بيئات حوسبة Lambda متميزة لكل مستأجر للمساعدة في تقليل تأثيرات الجار المزعج وعزل العملاء ذوي الحركة المرورية العالية بشكل أكثر نظافة.
- بث استجابات HTTP: بث السجلات والتقارير طويلة الأمد والاستجابات الجزئية أو استجابات LLM للذكاء الاصطناعي من Lambda عبر HTTP APIs في API Gateway.
- أدوار IAM لكل وظيفة: إضافة سياسات IAM لكل وظيفة أو تحويل الخدمة بأكملها لاستخدام سياسات لكل وظيفة.
- إضافات مدمجة: أصبحت إضافات المجتمع الشائعة الآن ميزات مدمجة من الدرجة الأولى في الإطار، بما في ذلك Python requirements وAppSync وPrune وAPI Gateway Service Proxy والمزيد.
- تحسين دعم النطاقات المخصصة (Custom Domains): لم تعد بحاجة إلى إضافة خارجية لتكوين النطاقات المخصصة وشهادات SSL تلقائيًا لواجهات البرمجة الخاصة بك والمزيد. أصبح هذا مدمجًا الآن في Serverless Framework CLI.
- التكامل مع Doppler: يمكنك الآن جلب الأسرار من Doppler بسهولة عبر متغيرات Serverless Framework.
- تقديم Serverless MCP: مصمم لـ Cursor وWindsurf وغيرها من بيئات التطوير المدعومة بالذكاء الاصطناعي، وهو يكتشف تلقائيًا الموارد السحابية من الكود الخاص بك، ويجلب السجلات والحالة والإعدادات من AWS، مما يتيح لك تصحيح أخطاء التطبيقات اللاخادمية مباشرةً في بيئة التطوير — دون الحاجة إلى زيارة وحدة تحكم AWS! يدعم Serverless Framework وCloudFormation والمزيد.
- دعم AWS SAM و AWS CloudFormation ومشاريع Serverless Framework التقليدية: يمكنك الآن استخدام أداة واحدة لنشر ملفات مشاريع IaC الثلاثة هذه. مزيد من المعلومات هنا
- دعم TypeScript الأصلي: يمكنك الآن استخدام معالجات
.tsفي دوال AWS Lambda الخاصة بك داخلserverless.ymlويتم بناؤها تلقائيًا عند النشر. ESBuild أصبح مضمنًا الآن في الإطار مما يجعل هذا ممكنًا. مزيد من المعلومات هنا. - حزمة AWS AI Stack: V.4 محسّن لـ AWS AI Stack. انشر نموذجًا كاملًا ولاخادميًا جاهزًا لتطبيقات الذكاء الاصطناعي على AWS، ويتضمن نماذج لغوية كبيرة عبر Amazon Bedrock والمزيد.
- وضع التطوير الجديد (Dev Mode): شغّل
serverless devلتوجيه الأحداث من بنيتك المباشرة إلى الكود المحلي الخاص بك، مما يتيح لك إجراء تغييرات سريعة دون نشر. مزيد من المعلومات هنا. - دعم أحدث بيئات التشغيل: دعم Node.js 24 (
nodejs24.x)، وPython 3.14 (python3.14)، وJava 25 (java25) على AWS Lambda. - دعم أحدث المناطق: دعم جميع المناطق الرئيسية، بما في ذلك
ap-southeast-6المُعلن عنها حديثًا في نيوزيلندا. - خاصية المراحل الجديدة (Stages Property): نظّم الإعدادات الخاصة بكل مرحلة بسهولة عبر
stagesوحدد إعدادdefaultللرجوع إليه. - تحسين تجربة Compose: أصبح Serverless Compose يمتلك الآن تجربة CLI جديدة جميلة توضح بشكل أفضل ما يتم نشره.
- تكاملات Terraform و Vault الجديدة: اسحب مخرجات الحالة من عدة حلول تخزين حالة Terraform، والأسرار من Vault. توثيق Terraform توثيق Vault
- أمر الدعم (Support Command): أرسل طلبات الدعم إلى فريقنا مباشرةً من CLI، والذي يتضمن تلقائيًا معلومات سياقية يمكنك مراجعتها قبل الإرسال.
- ملخص تصحيح الأخطاء للذكاء الاصطناعي: عند مواجهة خطأ، يمكنك تشغيل
serverless support --aiلإنشاء تقرير موجز يوضح آخر خطأ لديك مع كل السياق الضروري، محسّنًا للصق في أدوات الذكاء الاصطناعي مثل ChatGPT. - ضوابط تسجيل متقدمة لـ AWS Lambda: التقاط السجلات بصيغة JSON، وزيادة دقة السجلات، وتعيين مجموعة سجلات مخصصة. إليك مقال AWS. إليك التنفيذ بصيغة YAML
- تكامل Axiom: تكامل مع حل المراقبة من Axiom للحصول على تجربة قوية للسجلات والمقاييس والتتبعات، بتكلفة أقل بثلاث مرات من AWS CloudWatch.
- AWS SSO: متغيرات البيئة، خاصة تلك التي يضبطها AWS SSO، تحظى بالأولوية. لم يعد الإطار ولوحة المعلومات يتدخلان فيها.
- التحديثات التلقائية: تحدث الآن افتراضيًا. ومع ذلك، ستتمكن من التحكم في مستوى التحديثات التي ترغب في تلقيها.
- تحسين الإعداد والتسجيل: أُعيدت كتابة أمر
serverlessليكون أكثر فائدة عند إعداد مشروع جديد أو قائم. - تحديث معالجات الموارد المخصصة: تستخدم جميع معالجات الموارد المخصصة الآن بيئة تشغيل Node.js الحالية (
nodejs22.x). - إيقاف مزودي الخدمات غير التابعين لـ AWS: تم إيقاف مزودي الخدمات السحابية الآخرين. يركز V.4 على تقديم أفضل تجربة على AWS.
التغييرات الجذرية (Breaking Changes)
نسعى إلى تجنب التغييرات الجذرية لمزود خدمة "aws". ومع ذلك، هناك بعض الأمور الكبيرة التي تتغير ويجب أن تكون على دراية بها:
- ترخيص V.4 يتغير. راجع القسم أدناه لمزيد من المعلومات حول هذا.
- المصادقة مطلوبة داخل CLI.
- تم إيقاف مزودي الخدمات غير التابعين لـ AWS. سنقدم طرقًا جديدة في V.4 لاستخدام بائعي البنية التحتية السحابية الآخرين.
إذا صادفت تغييرات جذرية إضافية، يرجى إنشاء issue. لمعرفة المزيد حول ما هو مختلف والتغييرات الجذرية المحتملة، يرجى الاطلاع على توثيق الترقية إلى Serverless Framework V4.
تغييرات الترخيص في V.4
يرجى ملاحظة أن هيكل وترخيص مستودع V.4 يختلفان عن وحدة npm الخاصة بـ V.4. تحتوي وحدة npm على بعض البرامج المرخصة تجاريًا، حيث ينتقل V.4 إلى منتج SaaS مشترك، كما أُعلن سابقًا. سيستمر الكود المصدري الأصلي لـ Serverless Framework والمزيد في البقاء برمجيات مرخصة بموجب MIT، والمستودع منظم لتمييز المكونات التجارية عن مكونات المصدر المفتوح بوضوح — الكود المرخص بموجب MIT يحمل ملف LICENSE خاصًا به في packages/serverless، بينما يغطي ملف LICENSE في جذر المستودع المكونات التجارية.
المحتويات
الميزات
- ابنِ أكثر، وأدر أقل: ابتكر بشكل أسرع عبر قضاء وقت أقل في إدارة البنية التحتية.
- أقصى درجات التنوع: تعامل مع حالات استخدام لاخادمية متنوعة، من واجهات البرمجة والمهام المجدولة إلى WebSockets وخطوط معالجة البيانات.
- نشر مؤتمت: بسط التطوير من خلال التعامل مع الكود والبنية التحتية معًا.
- التطوير المحلي: وجّه الأحداث من AWS إلى كود AWS Lambda المحلي لديك للتطوير بشكل أسرع دون نشر كل تغيير.
- سهولة الاستخدام: انشر تطبيقات معقدة دون خبرة عميقة في البنية التحتية السحابية، بفضل إعدادات YAML البسيطة.
- استقلال اللغة: اكتب بلغتك المفضلة – Node.js أو Python أو Java أو Go أو C# أو Ruby أو Swift أو Kotlin أو PHP أو Scala أو F#.
- إدارة دورة الحياة الكاملة: طوّر وانشر وراقب وحدّث واستكشف أخطاء التطبيقات اللاخادمية بسهولة.
- تنظيم قابل للتوسع: نظّم المشاريع والفرق الكبيرة بكفاءة من خلال تقسيم التطبيقات الكبيرة إلى Services للعمل عليها بشكل فردي أو معًا عبر Serverless Compose.
- بيئات بلا عناء: أدر بيئات التطوير والاختبار والإنتاج بسلاسة.
- جاهز للتخصيص: وسّع وعدّل وظائف الإطار عبر نظام إضافات غني.
- مجتمع نابض بالحياة: احصل على الدعم وتواصل مع مجتمع شغوف من مطوري Serverless.
البدء السريع
إليك كيفية تثبيت Serverless Framework، وإعداد مشروع، ونشره إلى Amazon Web Services على بنية تحتية لاخادمية مثل AWS Lambda وAWS DynamoDB وAWS S3 والمزيد.
تثبيت Serverless Framework عبر NPM
أولًا، يجب أن يكون لديك Node.js runtime مثبتًا، الإصدار 18.17.0 أو أحدث، ثم يمكنك تثبيت Serverless Framework عبر NPM.
افتح CLI وقم بتشغيل الأمر أدناه لتثبيت Serverless Framework عالميًا.```text npm i serverless -g
شغّل `serverless` للتحقق من أن التثبيت يعمل، وعرض الإصدار الحالي.
<br/>
## تحديث Serverless Framework
ابتداءً من الإصدار 4، يقوم Serverless Framework بتحديث نفسه تلقائيًا ويجري فحصًا للقيام بذلك كل 24 ساعة.
يمكنك فرض تحديث عن طريق تشغيل هذا الأمر:```text
serverless update
أو يمكنك تعيين متغير البيئة هذا:```text SERVERLESS_FRAMEWORK_FORCE_UPDATE=true
<br/>
## الأمر `serverless`
يأتي إطار Serverless Framework مع أمر `serverless` يرشدك خلال إنشاء مشروع ونشره على AWS. يساعدك على تنزيل قالب، وإعداد بيانات اعتماد AWS، وإعداد لوحة تحكم Serverless Framework Dashboard، والمزيد، مع شرح كل مفهوم على طول الطريق.
سيرشدك هذا الدليل أيضًا إلى البدء مع Serverless Framework، ولكن يرجى ملاحظة أن مجرد كتابة أمر `serverless` قد يكون تجربة أفضل.```text
serverless
إنشاء خدمة
المفهوم الأساسي لمشروع في إطار Serverless Framework يُعرف باسم "Service"، ويتم تعريفه عبر ملف serverless.yml، الذي يحتوي على صيغة مبسطة لنشر البنية التحتية السحابية، مثل دوال AWS Lambda، والبنية التحتية التي تُطلق تلك الدوال عبر الأحداث، والبنية التحتية الإضافية التي قد تحتاجها دوال AWS Lambda الخاصة بك لحالات استخدام متنوعة (مثل جداول قواعد بيانات AWS DynamoDB، وحاويات تخزين AWS S3، وبوابات AWS API Gateways لاستقبال طلبات HTTP وإعادة توجيهها إلى AWS Lambda).
يمكن أن تكون الخدمة تطبيقًا كاملًا، أو منطقًا لمجال معين (مثل "blog" و"users" و"products")، أو خدمة مصغرة تعالج مهمة واحدة. أنت تقرر كيفية تنظيم مشروعك. بشكل عام، نوصي بالبدء بنهج متجانس لكل شيء لتقليل التعقيد، حتى يصبح تقسيم المنطق ضروريًا للغاية.
لإنشاء خدمة Serverless Framework وإعدادها بالكامل، استخدم الأمر serverless، الذي يقدم سير عمل إعداد تفاعلي.```text
serverless
سيعرض لك هذا عدة قوالب. اختر واحدًا يناسب اللغة وحالة الاستخدام التي تريدها.```text
Serverless ϟ Framework
Welcome to Serverless Framework V.4
Create a new project by selecting a Template to generate scaffolding for a specific use-case.
? Select A Template: …
❯ AWS / Node.js / HTTP API
AWS / Node.js / Express API
AWS / Node.js / Express API with DynamoDB
AWS / Node.js / Scheduled Task
AWS / Node.js / Simple Function
AWS / Python / HTTP API
AWS / Python / Flask API
AWS / Python / Flask API with DynamoDB
AWS / Python / Scheduled Task
AWS / Python / Simple Function
(Scroll for more)
بعد تحديد Service Template، سيتم تنزيل ملفاته وستتاح لك الفرصة لتسمية Service الخاص بك.```text ? Name Your Service: ›
يرجى استخدام الأحرف الإنجليزية الصغيرة والأرقام والواصلات فقط. كما يجب إبقاء أسماء الـ Service قصيرة، لأنها تُضاف إلى اسم كل مورد سحابي ينشئه Serverless Framework، وبعض الموارد السحابية لديها قيود على طول الأحرف في أسمائها.
تعرّف على المزيد حول الـ Services والمواضيع الأخرى في [وثائق المفاهيم الأساسية](https://www.serverless.com/framework/docs/providers/aws/guide/intro).
<br/>
## تسجيل الدخول
اعتبارًا من Serverless Framework V.4، إذا كنت تستخدم الأمر `serverless` لإعداد Service، فسيُطلب منك في النهاية تسجيل الدخول.
إذا كنت بحاجة إلى تسجيل الدخول خارج ذلك، شغّل `serverless login`.
سيقوم تسجيل الدخول بإعادة توجيهك إلى [Serverless Framework Dashboard](https://app.serverless.com) داخل متصفحك. بعد التسجيل أو تسجيل الدخول، عد إلى CLI وستكون قد سجّلت دخولك.
يرجى ملاحظة أنه يمكنك البدء في استخدام Serverless Framework CLI وDashboard مجانًا، وستبقى CLI مجانية دائمًا للمؤسسات الصغيرة والـ indiehackers. لمزيد من المعلومات حول الأسعار، تفضل بزيارة [صفحة الأسعار](https://serverless.com/pricing).
<br/>
## إنشاء تطبيق
مفهوم "App" هو حاوية أم لواحدة أو أكثر من "Services"، ويمكنك تعيينها اختياريًا عبر خاصية `app` في ملف `serverless.yml` الخاص بك. كما أن تعيين `app` يفعّل ميزات Serverless Framework Dashboard لتلك الـ Service، مثل تتبع Services ونشراتها في Serverless Framework Dashboard، وتمكين مشاركة المخرجات بينها، ومشاركة الأسرار بينها، وتمكين المقاييس والتتبعات والسجلات.
إذا كنت تستخدم أمر الإعداد `serverless`، فسيساعدك في إعداد `app` وإضافته إلى الـ Service الخاصة بك. يمكنك أيضًا استخدام الأمر `serverless` لإنشاء App على Service موجود، أو إنشاء App في Dashboard.```text
❯ Create A New App
ecommerce
blog
acmeinc
Skip Adding An App
يمكن أيضًا تعيين التطبيق يدويًا في serverless.yml عبر خاصية app:```yaml
service: my-service
app: my-app
إذا كنت لا تريد استخدام ميزات Serverless Framework Dashboard، فما عليك سوى عدم إضافة خاصية `app`. التطبيقات غير مطلوبة.
<br/>
## إعداد بيانات اعتماد AWS
لنشر البنية التحتية السحابية على AWS، يجب عليك منح Serverless Framework حق الوصول إلى بيانات اعتماد AWS الخاصة بك.
تشغيل أمر `serverless` الخاص بـ Serverless Framework في خدمة جديدة أو قائمة سيساعد في تحديد ما إذا كانت بيانات اعتماد AWS قد تم تعيينها بشكل صحيح أو إذا كانت منتهية الصلاحية، أو يساعدك في إعدادها من البداية.```text
No valid AWS Credentials were found in your environment variables or on your machine. Serverless Framework needs these to access your AWS account and deploy resources to it. Choose an option below to set up AWS Credentials.
❯ Create AWS IAM Role (Easy & Recommended)
Save AWS Credentials in a Local Profile
Skip & Set Later (AWS SSO, ENV Vars)
نوصي بإنشاء دور IAM على AWS يتم تخزينه في لوحة تحكم Serverless Framework Dashboard. سنوفر قريبًا دعمًا للعديد من بيانات اعتماد المزود، وتعد لوحة التحكم مكانًا رائعًا لإبقائها مركزية عبر فريقك، مما يساعدك على البقاء منظمًا، ويلغي الحاجة إلى تخزين بيانات الاعتماد على أجهزة زملائك بشكل آمن.
إذا كنت تستخدم AWS SSO، يمكنك تشغيل serverless login aws sso لتسجيل الدخول عبر متصفحك، أو ببساطة لصق بيانات اعتماد SSO المؤقتة داخل الطرفية كمتغيرات بيئة.
لمعرفة المزيد حول إعداد بيانات اعتماد AWS، اقرأ هذا الدليل.
نشر خدمة
بعد استخدام أمر serverless لإعداد كل شيء، حان الوقت لنشر خدمتك على AWS.
تأكد من أن جلستك في الطرفية موجودة داخل الدليل الذي يحتوي على ملف serverless.yml. إذا كنت قد أنشأت خدمة للتو، فلا تنسَ استخدام cd للانتقال إليها.```text
cd [your-new-service-name]
سيعمل النشر على إنشاء/تحديث البنية التحتية السحابية والكود على AWS، كل ذلك في نفس الوقت.
قم بتشغيل الأمر `deploy`:```text
serverless deploy
يمكن العثور على مزيد من التفاصيل حول النشر هنا.
التطوير
يختار العديد من مطوّري Serverless Framework والمطورين العاملين مع serverless عمومًا التطوير على السحابة، لأن ذلك يطابق الواقع (أي بيئة الإنتاج لديك)، كما أن محاكاة Lambda وتبعيات البنية التحتية الأخرى محليًا قد تكون معقدة.
في Serverless Framework V.4، أنشأنا نهجًا هجينًا للتطوير، لمساعدة المطورين على التطوير بسرعة مع دقة بيئة السحابة الحقيقية. هذا هو الأمر الجديد dev:```text
serverless dev
عند تشغيل هذا الأمر، يحدث ما يلي...
سيتم تنفيذ نشر AWS Cloudformation لتعديل جميع دوال AWS Lambda داخل الخدمة الخاصة بك بشكل طفيف بحيث تتضمن غلافًا خفيف الوزن.
بمجرد اكتمال نشر AWS Cloudformation هذا، ستظل دوال AWS Lambda الحية داخل الخدمة الخاصة بك قادرة على استقبال الأحداث واستدعائها داخل AWS.
ومع ذلك، سيتم توجيه الأحداث بشكل آمن وفوري إلى جهازك، وسيتم تشغيل الكود الموجود على جهازك، بدلاً من الكود الموجود داخل دوال AWS Lambda الحية لديك.
يتيح لك ذلك إجراء تغييرات على الكود الخاص بك، دون الحاجة إلى نشر أو إعادة إنشاء كل جانب من جوانب بنيتك التحتية محليًا، مما يسمح لك بالتطوير بسرعة.
ستظهر أيضًا السجلات من الكود المحلي الخاص بك داخل جلسة `dev` في الطرفية الخاصة بك.
بمجرد انتهاء الكود الخاص بك، سيتم إعادة توجيه الاستجابة من الكود المحلي الخاص بك إلى دوال AWS Lambda الحية لديك، وستقوم بإرجاع الاستجابة—تمامًا مثل دالة AWS Lambda عادية في السحابة.
يرجى ملاحظة أن `dev` مصمم فقط للتطوير أو المراحل/البيئات الشخصية ولا ينبغي تشغيله في الإنتاج أو أي مرحلة تتم فيها معالجة حجم كبير من الأحداث.
بمجرد الانتهاء من جلسة `dev` الخاصة بك، يجب عليك إعادة النشر باستخدام `serverless deploy` لدفع تغييراتك المحلية الحديثة إلى دوال AWS Lambda الحية لديك—وإلا ستفشل دوال AWS Lambda الخاصة بك(!)
يمكن العثور على مزيد من التفاصيل حول وضع التطوير [هنا](https://www.serverless.com/framework/docs/providers/aws/cli-reference/dev).
<br/>
## الاستدعاء
لاستدعاء دالة AWS Lambda الخاصة بك على السحابة، يمكنك العثور على عناوين URL لدوالك مع نقاط نهاية API في مخرجات `serverless deploy`، أو استرجاعها عبر `serverless info`. إذا لم تكن دوالك تحتوي على نقاط نهاية API، يمكنك استخدام أمر `invoke`، مثل هذا:```bash
sls invoke -f hello
# Invoke and display logs:
serverless invoke -f hello --log
يمكن العثور على مزيد من التفاصيل حول أمر invoke هنا.
نشر الدوال
لنشر تغييرات الكود بسرعة، يمكنك تخطي أمر serverless deploy الذي يكون أبطأ بكثير لأنه يؤدي إلى تحديث كامل لـ AWS CloudFormation، ونشر تغييرات الكود والإعدادات فقط إلى دالة AWS Lambda محددة.
لنشر تغييرات الكود والإعدادات إلى دوال AWS Lambda فردية في ثوانٍ، استخدم أمر deploy function، مع تعيين -f [function name in serverless.yml] على الدالة التي تريد نشرها.```text
serverless deploy function -f my-api
يمكن العثور على مزيد من التفاصيل حول أمر `deploy function` [هنا](https://www.serverless.com/framework/docs/providers/aws/cli-reference/deploy-function).
<br/>
## بث السجلات
يمكنك استخدام Serverless Framework لبث السجلات من AWS Cloudwatch مباشرة إلى الطرفية. استخدم الأمر `sls logs` في نافذة طرفية منفصلة:```bash
sls logs -f [Function name in serverless.yml] -t
استهدف دالة محددة عبر الخيار -f وفعّل التتبّع (أي البث) عبر الخيار -t.
التطوير المحلي الكامل
يختار العديد من مستخدمي Serverless Framework محاكاة بنيتهم اللاخادمية بالكامل محليًا. يرجى ملاحظة أن محاكاة AWS Lambda والخدمات السحابية الأخرى ليست دقيقة أبدًا، وقد تكون العملية معقدة، خاصة مع نمو مشروعك وفريقك. اعتبارًا من V.4، نوصي بشدة باستخدام وضع dev الجديد مع المراحل الشخصية.
إذا اخترت التطوير محليًا، نوصي بسير العمل التالي...
استخدم الأمر invoke local لاستدعاء دالتك محليًا:```bash
sls invoke local -f my-api
يمكنك أيضًا تمرير البيانات إلى هذا الاستدعاء المحلي عبر مجموعة متنوعة من الطرق. إليك إحداها:```bash
sls invoke local --function functionName --data '{"a":"bar"}'
مزيد من التفاصيل حول أمر invoke local يمكن العثور عليها هنا
يحتوي Serverless Framework أيضًا على إضافة رائعة تتيح لك تشغيل خادم محليًا ومحاكاة AWS API Gateway. هذه هي إضافة serverless-offline.
يمكن العثور على مزيد من التفاصيل في وثائق serverless-offline.
استخدام الإضافات
من أهم مزايا Serverless Framework هو النظام البيئي للإضافات.
تعمل الإضافات على توسيع أو تجاوز Serverless Framework، مما يمنحه حالات استخدام أو قدرات جديدة، ويوجد المئات منها.
لاحظ أن بعض الإضافات التي كانت شائعة سابقًا لم تعد ضرورية — فقد أصبحت وظائفها مدمجة الآن في الإطار، بما في ذلك متطلبات Python، والمجالات المخصصة، وAppSync، وPrune، وAPI Gateway Service Proxy.
من بين أكثر الإضافات شيوعًا:
- Serverless Offline - محاكاة AWS Lambda وAPI Gateway محليًا عند تطوير مشروع Serverless الخاص بك.
- Serverless Step Functions - بناء بنى AWS Step Functions.
يمكنك إضافة إضافة إلى خدمتك باستخدام serverless plugin install --name pluginName، والتي تقوم بتثبيتها عبر npm وتسجيلها في ملف serverless.yml الخاص بك.
تكوين الخدمات
يتيح لك Serverless Framework Compose العمل مع خدمات Serverless Framework متعددة في وقت واحد، والقيام بما يلي...
- نشر خدمات متعددة بالتوازي
- نشر الخدمات بترتيب محدد
- مشاركة المخرجات من خدمة إلى أخرى
- تشغيل الأوامر عبر خدمات متعددة
هذا ما قد يبدو عليه هيكل المشروع:```bash my-app/ service-a/ src/ ... serverless.yml service-b/ src/ ... serverless.yml
يتطلب استخدام Serverless Framework Compose ملف `serverless-compose.yml`. فيه، تحدد Services التي ترغب في نشرها. يمكنك أيضًا مشاركة البيانات من Service إلى آخر، مما يؤدي أيضًا إلى إنشاء ترتيب نشر.```yaml
# serverless-compose.yml
services:
service-a:
path: service-a
service-b:
path: service-b
params:
queueUrl: ${service-a.queueUrl}
عادةً ما تُعرَّف المخرجات المُراد توريثها بواسطة خدمة أخرى كمخرجات AWS CloudFormation:```yaml
service-a/serverless.yml
...
resources: Resources: MyQueue: Type: AWS::SQS::Queue # ... Outputs: queueUrl: Value: !Ref MyQueue
ستتم تمرير القيمة إلى `service-b` [كمعامل](https://www.serverless.com/framework/docs/guides/parameters) يُسمى `queueUrl`. يمكن الإشارة إلى المعاملات في إعدادات Serverless Framework عبر صيغة `${param:xxx}`:```yaml
# service-b/serverless.yml
provider:
...
environment:
# Here we inject the queue URL as a Lambda environment variable
SERVICE_A_QUEUE_URL: ${param:queueUrl}
يمكن العثور على مزيد من التفاصيل حول Serverless Framework Compose هنا.
أمر الدعم
في Serverless Framework V.4، قدّمنا أمر serverless support، وهي ميزة بارزة تتيح لك إنشاء تقارير المشكلات، أو التواصل مباشرة مع فريق الدعم لدينا. يقوم تلقائيًا بتضمين السياق ذي الصلة ويستبعد التفاصيل الحساسة مثل الأسرار ومعلومات الحساب، ويمكنك التحقق منها قبل الإرسال. تضمن هذه العملية المبسطة معالجة مشكلاتك بسرعة وأمان.
لاستخدام هذه الميزة، بعد حدوث خطأ أو أي أمر، شغّل:```bash sls support
بعد كل أمر، سواء نجح أم لا، يُحفظ السياق في مجلد `.serverless` داخل دليل العمل الحالي.
لفتح تذكرة دعم جديدة، شغّل الأمر `sls support` واختر `Get priority support...`. وستتمكن اختياريًا من مراجعة التقرير المُنشأ وتعديله. فتح تذاكر الدعم متاح فقط للمستخدمين الذين يسجّلون في اشتراك.
يمكنك أيضًا إنشاء تقارير دون إرسال تذكرة دعم جديدة. هذا مفيد لمشاركة السياق مع الآخرين، أو فتح مشكلات على Github، أو استخدامه مع موجه ذكاء اصطناعي مثل ChatGPT. للقيام بذلك، شغّل الأمر `sls support` واختر `Create a summary report...` أو `Create a comprehensive report...`. يمكنك تخطي المطالبة بتشغيل `sls support --summary` أو `sls support --all`. هذا مفيد بشكل خاص لالتقاط التقرير في الحافظة (مثل `sls support --summary | pbcopy`).
<br/>
## إزالة خدمتك
إذا أردت حذف خدمتك، شغّل `remove`. سيؤدي هذا إلى حذف جميع موارد AWS التي أنشأها مشروعك وضمان عدم تحمّل أي رسوم غير متوقعة. وسيزيل أيضًا الخدمة من لوحة تحكم Serverless.```bash
sls remove
يمكن العثور على مزيد من التفاصيل حول أمر remove هنا.
الخطوات التالية
فيما يلي بعض الموارد المفيدة لمواصلة العمل مع Serverless Framework:
- ادرس المفاهيم الأساسية لـ Serverless Framework
- استلهم من قوالب Serverless Framework هذه
- اكتشف جميع الأحداث التي يمكنها تشغيل دوال Lambda
- أضف دليل
serverless.ymlالخاص بـ Serverless Framework إلى المفضلة - ابحث في سجل الإضافات لتوسيع Serverless Framework
المجتمع
الأمان والإفصاح عن الثغرات
نحن نأخذ الأمان على محمل الجد. إذا اكتشفت مشكلة أمنية، فيرجى الإفصاح عنها بمسؤولية عن طريق الاتصال بنا على [email protected]. يرجى عدم الإفصاح علنًا عن الثغرات حتى نقوم بمعالجتها.
لمزيد من التفاصيل، راجع سياسة الأمان.
