Serverless AWS Lambda عملياً: الكود والأوامر التي تهم حقاً
Serverless AWS Lambda: الأساسيات في مقال واحد — كود حقيقي، مخططات وخطوات ملموسة، مقتطفات من دورة مكونة من 41 درسًا.
لا نظرية لا تنتهي هنا: نفتح الطرفية ونمارس. إليك أساسيات Serverless AWS Lambda، مستخرجة مباشرة من دورة كاملة تضم 41 درسًا — مع كود حقيقي يمكنك نسخه ولصقه الآن.
- إنشاء حساب AWS
- اكتشاف Serverless
- دوال Lambda بالتفصيل
- API Gateway
- DynamoDB
دليل مشروعك النهائي الكامل
نظرة عامة على المراحل
المرحلة 1
المرحلة 2
المرحلة 3
المرحلة 4
المرحلة 5
المرحلة 6
المرحلة 1 – التخطيط
1.1 – اختيار موضوعك
1.2 – تعريف جداول DynamoDB
ارسم مخططًا لجداولك مع السمات:
Table 1 : Produits ───────────────────────────────────── | productId (PK) | nom | categorie | prix | quantite | seuil_alerte | ───────────────────────────────────── Table 2 : Mouvements ───────────────────────────────────── | mouvementId (PK) | productId | type (entree/sortie) | quantite | date | ─────────────────────────────────────
• ما هي مفتاح التقسيم (partition key) لكل جدول؟
• هل أحتاج إلى sort key؟
• كيف ترتبط الجداول ببعضها؟ (مفتاح أجنبي منطقي)
• هل أحتاج إلى GSI لبعض الاستعلامات؟
1.3 – تعريف نقاط نهاية API
سرد جميع نقاط النهاية في جدول:
| الطريقة | Endpoint | الوصف | Body |
|---|---|---|---|
| GET | /produits | سرد جميع المنتجات | – |
| GET | /produits/{id} | الحصول على منتج | – |
| POST | /produits | إنشاء منتج | {"nom", "categorie", "prix", "quantite"} |
| PUT | /produits/{id} | تعديل منتج | {"nom", "prix", ...} |
| DELETE | /produits/{id} | حذف منتج | – |
| GET | /mouvements | سرد الحركات | – |
| POST | /mouvements | تسجيل حركة | {"productId", "type", "quantite"} |
1.4 – رسم البنية
Utilisateur
│
▼
┌──────────┐ ┌───────────────┐ ┌──────────┐
│ S3 │ │ API Gateway │ │ DynamoDB │
│ Frontend │────▶│ REST API │────▶│ Tables │
│ HTML/JS │ │ /produits │ │ │
└──────────┘ │ /mouvements │ └──────────┘
└───────┬───────┘
│
┌────▼────┐
│ Lambda │
│ Python │
└─────────┘المرحلة 2 – الخلفية (SAM + Lambda)
2.1 – تهيئة مشروع SAM
sam init --runtime python3.12 --name mon-projet-serverless --app-template hello-world
أو أنشئ هيكل المشروع يدويًا:
mon-projet-serverless/
├── template.yaml
├── src/
│ ├── handlers/
│ │ ├── __init__.py
│ │ ├── produits.py
│ │ └── mouvements.py
│ ├── utils/
│ │ ├── __init__.py
│ │ ├── response.py
│ │ └── validation.py
│ └── requirements.txt
└── frontend/
├── index.html
├── style.css
└── app.js2.2 – كتابة template.yaml
تثبيت AWS CLI وتهيئة بيانات الاعتماد
الأهداف التعليمية
- شرح دور AWS CLI
- تثبيت AWS CLI على Windows وmacOS وLinux
- تهيئة بيانات الاعتماد باستخدام
aws configure - استخدام الملفات الشخصية المسماة لإدارة حسابات متعددة
- التحقق من اتصالك باستخدام
aws sts get-caller-identity - فهم مكان تخزين بيانات الاعتماد
- تنفيذ أوامر AWS الأولى
ما هي AWS CLI؟
AWS CLI (Command Line Interface) أداة موحدة تتيح إدارة جميع خدمات AWS من الطرفية. بدل النقر في وحدة التحكم الويب، تكتب الأوامر.
السرعة
نفذ العمليات بسطر واحد بدل التنقل بين شاشات متعددة.
الأتمتة
ادمج الأوامر في سكربتات Bash أو PowerShell لأتمتة مهامك.
قابلية التكرار
شارك أوامرك مع فريقك. كل إجراء موثق وقابل للإصدار.
تثبيت AWS CLI v2
Windows
قم بتنزيل وتشغيل مثبت MSI:
# تنزيل المثبت https://awscli.amazonaws.com/AWSCLIV2.msi # أو عبر سطر الأوامر (PowerShell) msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi
اتبع معالج التثبيت، واقبل القيم الافتراضية ثم انقر Install.
macOS
# تنزيل الحزمة curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" # التثبيت sudo installer -pkg AWSCLIV2.pkg -target /
بديل باستخدام Homebrew:
brew install awscli
Linux (Ubuntu/Debian)
# تنزيل الأرشيف curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" # فك الضغط unzip awscliv2.zip # التثبيت sudo ./aws/install
التحقق من التثبيت
على جميع الأنظمة، تحقق من نجاح التثبيت:
aws --version
aws-cli/2.15.x Python/3.11.x Windows/10 exe/AMD64
SAM CLI – البناء والنشر والاختبار
sam init، التصريف باستخدام sam build، الاختبار محليًا باستخدام sam local والنشر باستخدام sam deploy. إتقان سير عمل تطوير serverless المحلي الكامل.الأهداف التعليمية
- تثبيت وتهيئة SAM CLI
- إنشاء مشروع serverless جديد باستخدام
sam init - تصريف مشروع باستخدام
sam build - استدعاء دالة محليًا باستخدام
sam local invoke - تشغيل خادم API محلي باستخدام
sam local start-api - نشر المشروع في AWS باستخدام
sam deploy - فهم دور Docker في الاختبار المحلي
الخطوة 1 – تثبيت SAM CLI
المتطلبات الأساسية
AWS CLI
يجب أن يكون AWS CLI مثبتًا ومهيأً (aws configure).
Docker
ضروري لـ sam local (يحاكي بيئة Lambda).
Python 3.9+
أو بيئة التشغيل التي تختارها (Node.js، Java، Go، إلخ).
التثبيت حسب نظام التشغيل
# Windows (مع مثبت MSI) # نزّل من: https://github.com/aws/aws-sam-cli/releases/latest # أو عبر Chocolatey: choco install aws-sam-cli # macOS (مع Homebrew) brew install aws-sam-cli # Linux pip install aws-sam-cli
التحقق من التثبيت
# التحقق من الإصدار sam --version
النتيجة المتوقعة:
SAM CLI, version 1.120.0
الخطوة 2 – إنشاء مشروع باستخدام sam init
# إنشاء مشروع SAM جديد sam init
سيوجهك CLI خلال الخيارات:
Which template source would you like to use? 1 - AWS Quick Start Templates 2 - Custom Template Location Choice: 1 Choose an AWS Quick Start application template 1 - Hello World Example 2 - Data processing 3 - Hello World Example with Powertools ... Template: 1 Use the most popular runtime and package type? (python3.12 and zip) y Would you like to enable X-Ray tracing on the function(s)? y Would you like to enable monitoring using CloudWatch Application Insights? y Would you like to set Structured Logging in JSON format on your Lambda functions? y Project name [sam-app]: mon-api-serverless
هيكل المشروع المُنشأ
mon-api-serverless/
└── README.md
└── __init__.py
└── events/
│ └── event.json # حدث اختبار
└── hello_world/
│ └── __init__.py
│ └── app.py # كود دالة Lambda
│ └── requirements.txt # تبعيات Python
└── template.yaml # قالب SAM
└── samconfig.toml # إعدادات النشر
└── tests/
└── __init__.py
└── unit/
└── test_handler.py # اختبارات وحدةيغطي هذا المقال المقتطفات الأكثر فائدة — الدورة الكاملة Serverless AWS Lambda (12 فصلاً، 41 درسًا، تمارين مصححة ومشروع نهائي) تأخذك حتى النهاية.
./acceder-au-cours-complet cours gratuit : Maîtriser Claude Codeالأسئلة الشائعة
كم من الوقت يستغرق تعلم Serverless AWS Lambda؟
هل هناك متطلبات مسبقة؟
من أين أبدأ عمليًا؟
📬 هل تريد تلقي هذا النوع من الأدلة كل أسبوع؟ اشترك مجانًا — كود حقيقي، بدون كلام فارغ.