Serverless AWS Lambda عملياً: الكود والأوامر التي تهم حقاً

Serverless AWS Lambda: الأساسيات في مقال واحد — كود حقيقي، مخططات وخطوات ملموسة، مقتطفات من دورة مكونة من 41 درسًا.

Serverless AWS Lambda عملياً: الكود والأوامر التي تهم حقاً

لا نظرية لا تنتهي هنا: نفتح الطرفية ونمارس. إليك أساسيات Serverless AWS Lambda، مستخرجة مباشرة من دورة كاملة تضم 41 درسًا — مع كود حقيقي يمكنك نسخه ولصقه الآن.

tl;dr
  • إنشاء حساب AWS
  • اكتشاف Serverless
  • دوال Lambda بالتفصيل
  • API Gateway
  • DynamoDB
~$ cat ./parcours.md # Serverless AWS Lambda — 11 فصول
01
إنشاء حساب AWS
→ إنشاء حساب AWS Free Tier→ تكوين IAM والأمان+ 1 دروس أخرى
02
اكتشاف Serverless
→ ما هو Serverless ؟→ نظرة عامة على خدمات AWS Serverless+ 1 دروس أخرى
03
وظائف Lambda بالتفصيل
→ تشريح وظيفة Lambda→ Runtimes, handlers وسياق التنفيذ+ 1 دروس أخرى
04
API Gateway
→ ما هي API Gateway ؟→ إنشاء API REST باستخدام API Gateway+ 1 دروس أخرى
05
DynamoDB
→ ما هو DynamoDB ونموذج NoSQL ؟→ إنشاء جدول وعمليات CRUD باستخدام boto3+ 1 دروس أخرى
06
CRUD كامل Lambda API Gateway DynamoDB
→ بنية مشروع CRUD الكامل→ وظائف Lambda – Create و Read+ 1 دروس أخرى
07
S3 وأحداث Lambda
→ ما هو Amazon S3 ؟→ تشغيل Lambda من S3+ 1 دروس أخرى
08
SAM Serverless Application Model
→ لماذا SAM والبنية التحتية ككود ؟→ قالب SAM والنشر+ 2 دروس أخرى
🏁
المشروع النهائي (+ 3 فصول في الطريق)
→ تعود بمشروع ملموس وقابل للعرض

دليل مشروعك النهائي الكامل

NOTEحول هذا الدليل — يرافقك هذا المستند خطوة بخطوة في إنجاز مشروعك النهائي. اتبع كل مرحلة بالترتيب لتعظيم فرص نجاحك. راجع المستند « المشروع النهائي – تطبيق Full Stack Serverless » لمعرفة المتطلبات وسلم التقييم.

نظرة عامة على المراحل

المرحلة 1

المرحلة 2

المرحلة 3

المرحلة 4

المرحلة 5

المرحلة 6

المرحلة 1 – التخطيط

TIPنصيحة — لا تبدأ أبدًا بالبرمجة قبل إنهاء التخطيط. الخطة الجيدة توفر عليك ساعات من التصحيح.

1.1 – اختيار موضوعك

1.2 – تعريف جداول DynamoDB

ارسم مخططًا لجداولك مع السمات:

output
Table 1 : Produits
─────────────────────────────────────
| productId (PK) | nom | categorie | prix | quantite | seuil_alerte |
─────────────────────────────────────

Table 2 : Mouvements
─────────────────────────────────────
| mouvementId (PK) | productId | type (entree/sortie) | quantite | date |
─────────────────────────────────────
NOTEأسئلة تطرحها على نفسك
• ما هي مفتاح التقسيم (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 – رسم البنية

output
Utilisateur
    │
    ▼
┌──────────┐     ┌───────────────┐     ┌──────────┐
│  S3      │     │ API Gateway   │     │ DynamoDB │
│ Frontend │────▶│  REST API     │────▶│ Tables   │
│ HTML/JS  │     │  /produits    │     │          │
└──────────┘     │  /mouvements  │     └──────────┘
                 └───────┬───────┘
                         │
                    ┌────▼────┐
                    │ Lambda  │
                    │ Python  │
                    └─────────┘

المرحلة 2 – الخلفية (SAM + Lambda)

2.1 – تهيئة مشروع SAM

bash
sam init --runtime python3.12 --name mon-projet-serverless --app-template hello-world

أو أنشئ هيكل المشروع يدويًا:

output
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.js

2.2 – كتابة template.yaml

تثبيت AWS CLI وتهيئة بيانات الاعتماد

NOTEالهدف — تثبيت واجهة سطر أوامر AWS (CLI)، تهيئتها باستخدام مفاتيح الوصول الخاصة بك والتحقق من الاتصال بحسابك.

الأهداف التعليمية

TIPعند نهاية هذه الوحدة — ستكون قادرًا على إتقان هذه المهارات الأساسية.
  • شرح دور 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:

bash
# تنزيل المثبت
https://awscli.amazonaws.com/AWSCLIV2.msi

# أو عبر سطر الأوامر (PowerShell)
msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi

اتبع معالج التثبيت، واقبل القيم الافتراضية ثم انقر Install.

macOS

bash
# تنزيل الحزمة
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"

# التثبيت
sudo installer -pkg AWSCLIV2.pkg -target /

بديل باستخدام Homebrew:

bash
brew install awscli

Linux (Ubuntu/Debian)

bash
# تنزيل الأرشيف
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

# فك الضغط
unzip awscliv2.zip

# التثبيت
sudo ./aws/install

التحقق من التثبيت

على جميع الأنظمة، تحقق من نجاح التثبيت:

bash
aws --version
NOTEالنتيجة المتوقعة
bash
aws-cli/2.15.x Python/3.11.x Windows/10 exe/AMD64
قد يختلف رقم الإصدار، المهم أن يعمل الأمر.

SAM CLI – البناء والنشر والاختبار

NOTEالهدف — تثبيت SAM CLI، إنشاء مشروع باستخدام sam init، التصريف باستخدام sam build، الاختبار محليًا باستخدام sam local والنشر باستخدام sam deploy. إتقان سير عمل تطوير serverless المحلي الكامل.

الأهداف التعليمية

TIPعند نهاية هذه الوحدة — ستكون قادرًا على إتقان هذه المهارات الأساسية.
  • تثبيت وتهيئة 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، إلخ).

التثبيت حسب نظام التشغيل

bash
# 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

التحقق من التثبيت

bash
# التحقق من الإصدار
sam --version

النتيجة المتوقعة:

output
SAM CLI, version 1.120.0

الخطوة 2 – إنشاء مشروع باستخدام sam init

bash
# إنشاء مشروع SAM جديد
sam init

سيوجهك CLI خلال الخيارات:

output
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

هيكل المشروع المُنشأ

output
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     # اختبارات وحدة
va-plus-loin

يغطي هذا المقال المقتطفات الأكثر فائدة — الدورة الكاملة Serverless AWS Lambda (12 فصلاً، 41 درسًا، تمارين مصححة ومشروع نهائي) تأخذك حتى النهاية.

./acceder-au-cours-complet cours gratuit : Maîtriser Claude Code

الأسئلة الشائعة

كم من الوقت يستغرق تعلم Serverless AWS Lambda؟
مع تقدم منظم (12 فصلاً، 41 درسًا قصيرًا وعمليًا)، يمكن الوصول إلى مستوى تشغيلي في بضعة أسابيع بمعدل 30 إلى 60 دقيقة يوميًا. المهم هو ممارسة كل مفهوم فورًا.
هل هناك متطلبات مسبقة؟
تكفي أساسيات الحاسوب. إذا كنت تعرف استخدام الطرفية وقراءة كود بسيط، فأنت جاهز.
من أين أبدأ عمليًا؟
طبّق أوامر هذا المقال، ثم تابع دورة Serverless AWS Lambda الكاملة: تربط الـ41 درسًا بالترتيب مع تمارين ومشروع نهائي.

📬 هل تريد تلقي هذا النوع من الأدلة كل أسبوع؟ اشترك مجانًا — كود حقيقي، بدون كلام فارغ.