انتقل إلى المحتوى الرئيسي

المختبر : تكوين البيئة

أهداف المختبر​

في نهاية هذا المختبر، سيكون لديك:

  • ✅ بيئة عمل كاملة وعملية
  • ✅ تم تثبيت Docker Desktop وتشغيله
  • ✅ تم تكوين AWS CLI v2 مع ملف تعريف LocalStack
  • ✅ تم بدء واختبار LocalStack
  • ✅ تقرير صغير مع إثباتات التكوين

المدة المقدرة​

1 إلى 2 ساعة (حسب نظامك واتصال الإنترنت)

المتطلبات المسبقة​

  • كمبيوتر يعمل بنظام Windows 10/11، macOS أو Linux
  • حقوق المسؤول
  • اتصال إنترنت مستقر
  • 10 جيجابايت من المساحة الحرة على القرص كحد أدنى

الجزء 1 : تثبيت Docker Desktop​

الخطوات​

1.1 تحميل Docker Desktop

توجه إلى: https://www.docker.com/products/docker-desktop/

قم بتنزيل الإصدار المناسب لنظامك.

1.2 تثبيت Docker Desktop

  • Windows : انقر نقرًا مزدوجًا على المثبت، واتبع المعالج
  • macOS : اسحب Docker إلى التطبيقات
  • Linux : اتبع تعليمات التوزيعة الخاصة بك

1.3 بدء Docker Desktop

قم بتشغيل Docker Desktop من قائمة ابدأ (Windows) أو التطبيقات (macOS).

انتظر حتى تشير أيقونة Docker إلى "Docker is running".

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

افتح طرفية ونفذ:

docker --version
docker run hello-world

التحقق من الجزء 1​

لقطة شاشة مطلوبة

خذ لقطة شاشة تظهر:

  1. مخرجات docker --version
  2. رسالة "Hello from Docker!" من docker run hello-world

قم بتسمية هذا الملف: 01-docker-version.png


الجزء 2 : تثبيت AWS CLI v2​

الخطوات​

2.1 تحميل AWS CLI v2

2.2 التثبيت

Windows :

# انقر نقرًا مزدوجًا على AWSCLIV2.msi واتبع المعالج
# أو
msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi

macOS :

curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
sudo installer -pkg AWSCLIV2.pkg -target /

Linux :

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

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

أغلق وأعد فتح الطرفية، ثم:

aws --version

2.4 تكوين ملف تعريف LocalStack

aws configure --profile localstack

أدخل القيم التالية:

AWS Access Key ID [None]: test
AWS Secret Access Key [None]: test
Default region name [None]: us-east-1
Default output format [None]: json

2.5 التحقق من التكوين

aws configure list --profile localstack

التحقق من الجزء 2​

لقطة شاشة مطلوبة

خذ لقطة شاشة تظهر:

  1. مخرجات aws --version
  2. مخرجات aws configure list --profile localstack

قم بتسمية هذا الملف: 02-aws-cli-config.png


الجزء 3 : بدء LocalStack​

الخطوات​

3.1 إنشاء مجلد عمل

# أنشئ مجلدًا لهذه الدورة
mkdir aws-course
cd aws-course

3.2 إنشاء ملف docker-compose.yml

أنشئ ملفًا docker-compose.yml بالمحتوى التالي:

version: '3.8'

services:
localstack:
container_name: localstack
image: localstack/localstack:latest
ports:
- "4566:4566"
- "4510-4559:4510-4559"
environment:
- SERVICES=s3,lambda,sqs,sns,dynamodb,cloudwatch,cloudformation,iam
- DEBUG=1
- DATA_DIR=/tmp/localstack/data
volumes:
- "./localstack-data:/var/lib/localstack"
- "/var/run/docker.sock:/var/run/docker.sock"

3.3 بدء LocalStack

docker-compose up -d

أو بدون docker-compose:

docker run -d \
--name localstack \
-p 4566:4566 \
-e SERVICES=s3,lambda,sqs,dynamodb,cloudwatch,cloudformation \
localstack/localstack

3.4 الانتظار حتى يبدأ (30-60 ثانية)

# تحقق من أن الحاوية تعمل
docker ps

# عرض السجلات (اختياري)
docker logs localstack

3.5 التحقق من الحالة الصحية

# Linux/macOS
curl http://localhost:4566/_localstack/health

# Windows PowerShell
Invoke-RestMethod http://localhost:4566/_localstack/health

التحقق من الجزء 3​

لقطة شاشة مطلوبة

خذ لقطة شاشة تظهر:

  1. مخرجات docker ps مع الحاوية localstack
  2. مخرجات فحص الصحة

قم بتسمية هذا الملف: 03-localstack-running.png


الجزء 4 : اختبار أوامر AWS​

الخطوات​

4.1 تكوين الاسم المستعار (اختياري ولكن موصى به)

Windows PowerShell :

# جرب أولاً بدون اسم مستعار
aws --endpoint-url=http://localhost:4566 s3 ls --profile localstack

macOS/Linux :

alias awslocal='aws --endpoint-url=http://localhost:4566 --profile localstack'

4.2 إنشاء دلو S3

# مع الاسم المستعار
awslocal s3 mb s3://mon-premier-bucket-test

# بدون الاسم المستعار (Windows)
aws --endpoint-url=http://localhost:4566 s3 mb s3://mon-premier-bucket-test --profile localstack

4.3 سرد الدلاء

awslocal s3 ls

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

2024-12-18 10:30:00 mon-premier-bucket-test

4.4 إنشاء ملف اختبار

# إنشاء ملف محلي
echo "Hello AWS LocalStack!" > test.txt

# رفع إلى S3
awslocal s3 cp test.txt s3://mon-premier-bucket-test/

# التحقق
awslocal s3 ls s3://mon-premier-bucket-test/

4.5 تنزيل الملف

awslocal s3 cp s3://mon-premier-bucket-test/test.txt downloaded.txt
cat downloaded.txt

4.6 تنظيف

# حذف الملف من الدلو
awslocal s3 rm s3://mon-premier-bucket-test/test.txt

# حذف الدلو
awslocal s3 rb s3://mon-premier-bucket-test

التحقق من الجزء 4​

لقطة شاشة مطلوبة

خذ لقطة شاشة تظهر:

  1. إنشاء الدلو (s3 mb)
  2. سرد الدلو مع الملف (s3 ls)
  3. محتوى الملف الذي تم تنزيله

قم بتسمية هذا الملف: 04-aws-s3-test.png


الجزء 5 : اختبار Lambda (إضافي)​

الخطوات​

5.1 إنشاء وظيفة Lambda بسيطة

أنشئ ملفًا lambda_function.py:

def handler(event, context):
return {
'statusCode': 200,
'body': 'Hello from LocalStack Lambda!'
}

5.2 ضغط الوظيفة

# Linux/macOS
zip function.zip lambda_function.py

# Windows PowerShell
Compress-Archive -Path lambda_function.py -DestinationPath function.zip

5.3 إنشاء وظيفة Lambda

awslocal lambda create-function \
--function-name ma-premiere-fonction \
--runtime python3.9 \
--handler lambda_function.handler \
--zip-file fileb://function.zip \
--role arn:aws:iam::000000000000:role/lambda-role

5.4 استدعاء الوظيفة

awslocal lambda invoke \
--function-name ma-premiere-fonction \
--payload '{}' \
output.txt

cat output.txt

5.5 سرد الوظائف

awslocal lambda list-functions

التحقق من الجزء 5​

لقطة شاشة مطلوبة (إضافي)

خذ لقطة شاشة تظهر:

  1. إنشاء وظيفة Lambda
  2. الاستدعاء الناجح مع النتيجة

قم بتسمية هذا الملف: 05-lambda-test.png


تسليمات المختبر​

تقرير صغير "البيئة جاهزة"​

أنشئ مستندًا (Word، PDF أو Markdown) يحتوي على:

1. صفحة العنوان

  • اسم الطالب
  • التاريخ
  • العنوان: "مختبر 1 - تكوين البيئة AWS"

2. لقطات الشاشة قم بتضمين 4 لقطات إلزامية (5 مع الإضافة Lambda):

  • 01-docker-version.png
  • 02-aws-cli-config.png
  • 03-localstack-running.png
  • 04-aws-s3-test.png
  • 05-lambda-test.png (إضافي)

3. جدول ملخص

المكونالإصدارالحالة
DockerX.X.X✅ مثبت
AWS CLIX.X.X✅ تم تكوينه
LocalStacklatest✅ وظيفي

4. المشاكل التي واجهتها (إذا كانت موجودة) وصف بإيجاز أي مشكلة واجهتها وكيف قمت بحلها.

5. قائمة التحقق النهائية

  • تم تثبيت Docker Desktop وتشغيله
  • تم تثبيت AWS CLI v2
  • تم تكوين ملف تعريف LocalStack
  • تم بدء LocalStack
  • تم اختبار S3 بنجاح (إنشاء دلو، رفع ملف)
  • تم اختبار Lambda بنجاح (إضافي)

جدول التقييم​

المعيارالنقاط
تم تثبيت Docker وتشغيله2
تم تثبيت AWS CLI وتكوينه2
تم بدء LocalStack2
تم اختبار S3 بنجاح2
لقطات الشاشة كاملة1
التقرير منظم بشكل جيد1
المجموع10

إضافي: تم اختبار Lambda بنجاح (+2 نقاط)


استكشاف الأخطاء الشائعة​

Docker لا يبدأ​

Windows :

  1. قم بتمكين الافتراضية في BIOS
  2. قم بتمكين WSL2: wsl --install
  3. أعد تشغيل الكمبيوتر

AWS CLI غير معترف به​

  1. أغلق وأعد فتح الطرفية
  2. تحقق من PATH
  3. أعد تثبيت AWS CLI

LocalStack لا يستجيب​

  1. انتظر 60 ثانية بعد البدء
  2. تحقق من السجلات: docker logs localstack
  3. أعد التشغيل: docker restart localstack

خطأ "No credentials"​

# إعادة التكوين
aws configure --profile localstack

# التحقق
aws configure list --profile localstack

ملخص الأوامر​

# Docker
docker --version
docker run hello-world
docker ps
docker logs localstack

# AWS CLI
aws --version
aws configure --profile localstack
aws configure list --profile localstack

# LocalStack
docker-compose up -d
curl http://localhost:4566/_localstack/health

# اختبارات S3
awslocal s3 mb s3://bucket-name
awslocal s3 ls
awslocal s3 cp file.txt s3://bucket/
awslocal s3 rm s3://bucket/file.txt
awslocal s3 rb s3://bucket-name

# اختبارات Lambda
awslocal lambda create-function ...
awslocal lambda invoke ...
awslocal lambda list-functions

اختبار نهاية المختبر​

  1. ما هو المنفذ الافتراضي لـ LocalStack؟
  2. ما هي الخيار في AWS CLI الذي يسمح بالإشارة إلى LocalStack؟
  3. ما هو الأمر الذي ينشئ دلو S3؟
  4. كيف تتحقق من أن LocalStack يعمل؟
  5. لماذا نستخدم بيانات اعتماد "test" مع LocalStack؟

تهانينا! لقد قمت بتكوين بيئة AWS الخاصة بك. أنت جاهز للوحدة 2!