المختبر : تكوين البيئة
أهداف المختبر
في نهاية هذا المختبر، سيكون لديك:
- ✅ بيئة عمل كاملة وعملية
- ✅ تم تثبيت 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
خذ لقطة شاشة تظهر:
- مخرجات
docker --version - رسالة "Hello from Docker!" من
docker run hello-world
قم بتسمية هذا الملف: 01-docker-version.png
الجزء 2 : تثبيت AWS CLI v2
الخطوات
2.1 تحميل AWS CLI v2
- Windows : https://awscli.amazonaws.com/AWSCLIV2.msi
- macOS : https://awscli.amazonaws.com/AWSCLIV2.pkg
- Linux : انظر الأوامر أدناه
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
خذ لقطة شاشة تظهر:
- مخرجات
aws --version - مخرجات
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
خذ لقطة شاشة تظهر:
- مخرجات
docker psمع الحاوية localstack - مخرجات فحص الصحة
قم بتسمية هذا الملف: 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
خذ لقطة شاشة تظهر:
- إنشاء الدلو (
s3 mb) - سرد الدلو مع الملف (
s3 ls) - محتوى الملف الذي تم تنزيله
قم بتسمية هذا الملف: 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
خذ لقطة شاشة تظهر:
- إنشاء وظيفة Lambda
- الاستدعاء الناجح مع النتيجة
قم بتسمية هذا الملف: 05-lambda-test.png
تسليمات المختبر
تقرير صغير "البيئة جاهزة"
أنشئ مستندًا (Word، PDF أو Markdown) يحتوي على:
1. صفحة العنوان
- اسم الطالب
- التاريخ
- العنوان: "مختبر 1 - تكوين البيئة AWS"
2. لقطات الشاشة قم بتضمين 4 لقطات إلزامية (5 مع الإضافة Lambda):
01-docker-version.png02-aws-cli-config.png03-localstack-running.png04-aws-s3-test.png05-lambda-test.png(إضافي)
3. جدول ملخص
| المكون | الإصدار | الحالة |
|---|---|---|
| Docker | X.X.X | ✅ مثبت |
| AWS CLI | X.X.X | ✅ تم تكوينه |
| LocalStack | latest | ✅ وظيفي |
4. المشاكل التي واجهتها (إذا كانت موجودة) وصف بإيجاز أي مشكلة واجهتها وكيف قمت بحلها.
5. قائمة التحقق النهائية
- تم تثبيت Docker Desktop وتشغيله
- تم تثبيت AWS CLI v2
- تم تكوين ملف تعريف LocalStack
- تم بدء LocalStack
- تم اختبار S3 بنجاح (إنشاء دلو، رفع ملف)
- تم اختبار Lambda بنجاح (إضافي)
جدول التقييم
| المعيار | النقاط |
|---|---|
| تم تثبيت Docker وتشغيله | 2 |
| تم تثبيت AWS CLI وتكوينه | 2 |
| تم بدء LocalStack | 2 |
| تم اختبار S3 بنجاح | 2 |
| لقطات الشاشة كاملة | 1 |
| التقرير منظم بشكل جيد | 1 |
| المجموع | 10 |
إضافي: تم اختبار Lambda بنجاح (+2 نقاط)
استكشاف الأخطاء الشائعة
Docker لا يبدأ
Windows :
- قم بتمكين الافتراضية في BIOS
- قم بتمكين WSL2:
wsl --install - أعد تشغيل الكمبيوتر
AWS CLI غير معترف به
- أغلق وأعد فتح الطرفية
- تحقق من PATH
- أعد تثبيت AWS CLI
LocalStack لا يستجيب
- انتظر 60 ثانية بعد البدء
- تحقق من السجلات:
docker logs localstack - أعد التشغيل:
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
اختبار نهاية المختبر
- ما هو المنفذ الافتراضي لـ LocalStack؟
- ما هي الخيار في AWS CLI الذي يسمح بالإشارة إلى LocalStack؟
- ما هو الأمر الذي ينشئ دلو S3؟
- كيف تتحقق من أن LocalStack يعمل؟
- لماذا نستخدم بيانات اعتماد "test" مع LocalStack؟
تهانينا! لقد قمت بتكوين بيئة AWS الخاصة بك. أنت جاهز للوحدة 2!