تثبيت AWS CLI v2
ما هو AWS CLI؟
AWS CLI (واجهة سطر الأوامر) هو الأداة الرسمية من أمازون للتفاعل مع خدمات AWS عبر سطر الأوامر. يتيح لك تنفيذ الأوامر لإدارة موارد AWS الخاصة بك من خلال الطرفية.
┌─────────────────────────────────────────────────────────────┐
│ AWS CLI │
├─────────────────────────────────────────────────────────────┤
│ │
│ Terminal ──► aws <service> <action> <options> │
│ │ │ │ │
│ │ │ └── Paramètres │
│ │ └── Commande (create, list...) │
│ └── Service AWS (ec2, s3, lambda...) │
│ │
│ Exemples : │
│ $ aws s3 ls # لعرض قائمة الحاويات S3 │
│ $ aws ec2 describe-instances # لعرض قائمة مثيلات EC2 │
│ $ aws lambda list-functions # لعرض قائمة الوظائف │
│ │
└─────────────────────────────────────────────────────────────┘
المتطلبات المسبقة
قبل تثبيت AWS CLI، تأكد من أن لديك:
- حقوق المسؤول على جهازك
- اتصال بالإنترنت
- طرفية/PowerShell تعمل
التثبيت على Windows
الطريقة 1: المثبت MSI (موصى بها)
الخطوة 1: تحميل المثبت
قم بتحميل AWS CLI v2 من الموقع الرسمي:
الخطوة 2: تشغيل المثبت
- انقر نقرًا مزدوجًا على الملف
AWSCLIV2.msi - اتبع معالج التثبيت
- اقبل شروط الاستخدام
- انقر على "Install"
- انتظر حتى ينتهي التثبيت
الخطوة 3: التحقق من التثبيت
افتح PowerShell جديد ونفذ:
aws --version
النتيجة المتوقعة:
aws-cli/2.x.x Python/3.x.x Windows/10 exe/AMD64 prompt/off
الطريقة 2: عبر PowerShell (بديل)
# تحميل وتثبيت
msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi /quiet
# التحقق (طرفية جديدة)
aws --version
التثبيت على macOS
الطريقة 1: الحزمة الرسمية (موصى بها)
# تحميل الحزمة
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
# التثبيت
sudo installer -pkg AWSCLIV2.pkg -target /
# التحقق
aws --version
الطريقة 2: عبر Homebrew
# التثبيت عبر Homebrew
brew install awscli
# التحقق
aws --version
التثبيت على Linux
الطريقة العالمية (جميع التوزيعات)
# تحميل
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
# فك الضغط
unzip awscliv2.zip
# التثبيت
sudo ./aws/install
# التحقق
aws --version
# التنظيف
rm -rf aws awscliv2.zip
Ubuntu/Debian
# تثبيت التبعيات
sudo apt update
sudo apt install -y unzip curl
# ثم اتبع الطريقة العالمية أعلاه
إعداد AWS CLI
الإعداد لـ LocalStack
بما أننا نستخدم LocalStack (محاكي AWS محلي)، سنقوم بإعداد AWS CLI للإشارة إلى LocalStack بدلاً من AWS الحقيقي.
الخطوة 1: إنشاء ملف تعريف 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
LocalStack لا يحتاج إلى بيانات اعتماد حقيقية. القيم "test" تعمل بشكل مثالي.
الخطوة 2: إنشاء اختصار (اختياري لكن موصى به)
لتجنب كتابة --endpoint-url في كل مرة:
Windows PowerShell:
# إضافة إلى ملف تعريف PowerShell
notepad $PROFILE
# إضافة هذا السطر:
function awslocal { aws --endpoint-url=http://localhost:4566 --profile localstack $args }
macOS/Linux:
# إضافة إلى ~/.bashrc أو ~/.zshrc
echo 'alias awslocal="aws --endpoint-url=http://localhost:4566 --profile localstack"' >> ~/.bashrc
source ~/.bashrc
التحقق من الإعداد
# عرض الإعداد
aws configure list --profile localstack
النتيجة المتوقعة:
Name Value Type Location
---- ----- ---- --------
profile localstack manual --profile
access_key ****************test shared-credentials-file
secret_key ****************test shared-credentials-file
region us-east-1 config-file ~/.aws/config
هيكل ملفات الإعداد
يخزن AWS CLI إعداداته في ملفين:
~/.aws/
├── config # إعدادات عامة (المنطقة، المخرج)
└── credentials # مفاتيح الوصول (access key، secret key)
ملف ~/.aws/config
[default]
region = us-east-1
output = json
[profile localstack]
region = us-east-1
output = json
ملف ~/.aws/credentials
[default]
aws_access_key_id = YOUR_ACCESS_KEY
aws_secret_access_key = YOUR_SECRET_KEY
[localstack]
aws_access_key_id = test
aws_secret_access_key = test
أوامر AWS CLI الأساسية
هيكل الأمر
aws <service> <action> [--options]
أوامر مفيدة
| الأمر | الوصف |
|---|---|
aws --version | إصدار AWS CLI |
aws help | مساعدة عامة |
aws <service> help | مساعدة لخدمة معينة |
aws configure list | عرض الإعداد |
aws sts get-caller-identity | التحقق من الهوية |
أمثلة حسب الخدمة
S3 (التخزين):
aws s3 ls # عرض قائمة الحاويات
aws s3 mb s3://mon-bucket # إنشاء حاوية
aws s3 cp fichier.txt s3://bucket/ # نسخ ملف
EC2 (الحوسبة):
aws ec2 describe-instances # عرض قائمة المثيلات
aws ec2 describe-vpcs # عرض قائمة VPCs
aws ec2 describe-security-groups # عرض قائمة مجموعات الأمان
Lambda (بدون خادم):
aws lambda list-functions # عرض قائمة الوظائف
aws lambda invoke --function-name X out.txt # استدعاء
الخيارات العالمية المهمة
| الخيار | الوصف |
|---|---|
--profile <name> | استخدام ملف تعريف محدد |
--region <region> | تحديد المنطقة |
--output <format> | تنسيق المخرج (json، text، table) |
--endpoint-url <url> | URL مخصص (لـ LocalStack) |
--query <jmespath> | تصفية المخرج JSON |
أمثلة مع الخيارات
# استخدام ملف تعريف localstack
aws s3 ls --profile localstack
# تغيير المنطقة
aws ec2 describe-instances --region eu-west-1
# مخرج في شكل جدول
aws ec2 describe-instances --output table
# تصفية باستخدام JMESPath
aws ec2 describe-instances --query 'Reservations[].Instances[].InstanceId'
اختبار التثبيت
بدون LocalStack (تحقق أساسي)
# التحقق من الإصدار
aws --version
# التحقق من الإعداد
aws configure list --profile localstack
مع LocalStack (بعد تثبيت LocalStack)
# بدء تشغيل LocalStack أولاً (انظر القسم التالي)
# اختبار S3
aws --endpoint-url=http://localhost:4566 s3 ls --profile localstack
# أو باستخدام الاختصار
awslocal s3 ls
استكشاف الأخطاء وإصلاحها
مشكلة: "aws command not found"
Windows:
- أغلق وأعد فتح PowerShell
- تحقق من PATH:
$env:PATH - أعد تثبيت AWS CLI
macOS/Linux:
# تحقق من الموقع
which aws
# إذا كان فارغًا، أضف إلى PATH
export PATH="/usr/local/bin:$PATH"
مشكلة: "Unable to locate credentials"
# تحقق من الإعداد
aws configure list
# إذا كان فارغًا، أعد الإعداد
aws configure --profile localstack
مشكلة: "Connection refused"
من المحتمل أن LocalStack لم يبدأ. انظر القسم التالي.
لقطة الشاشة المتوقعة
بعد التثبيت الناجح، يجب أن ترى:
PS C:\Users\VotreNom> aws --version
aws-cli/2.15.0 Python/3.11.6 Windows/10 exe/AMD64 prompt/off
PS C:\Users\VotreNom> aws configure list --profile localstack
Name Value Type Location
---- ----- ---- --------
profile localstack manual --profile
access_key ****************test shared-credentials-file
secret_key ****************test shared-credentials-file
region us-east-1 config-file ~/.aws/config
قائمة التحقق من التحقق
- تم تثبيت AWS CLI v2 (
aws --versionيعمل) - تم تكوين ملف تعريف "localstack"
- تم إنشاء ملفات ~/.aws/config و ~/.aws/credentials
- تم إنشاء اختصار
awslocal(اختياري)
مرجع سريع لأوامر AWS CLI
الصياغة العامة
aws [service] [operation] [parametres] [options]
مثال:
aws iam get-policy --policy-arn arn:aws:iam::123456789:policy/MyPolicy
أوامر EC2
| الإجراء | الأمر |
|---|---|
| تعديل مثيل | aws ec2 modify-instance-attribute --instance-id i-123 --instance-type m5.xlarge |
| إنشاء AMI | aws ec2 create-image --instance-id i-123abc --name "Base_Image" |
| نسخ AMI إلى منطقة أخرى | aws ec2 copy-image --source-image-id ami-123 --source-region us-east-1 --region eu-west-1 --name "prod-server" |
| تسجيل AMI | aws ec2 register-image --root-device-name /dev/sda1 --name "linux_ami" |
أوامر EBS
| الإجراء | الأمر |
|---|---|
| إنشاء حجم | aws ec2 create-volume --size 80 --availability-zone us-east-1a --volume-type gp3 |
| إرفاق حجم | aws ec2 attach-volume --volume-id vol-123 --instance-id i-abc --device /dev/sdf |
أوامر S3
| الإجراء | الأمر |
|---|---|
| إنشاء حاوية (API) | aws s3api create-bucket --bucket mon-bucket |
| إنشاء حاوية (بسيط) | aws s3 mb s3://mon-bucket |
| عرض قائمة الحاويات | aws s3 ls |
| نسخ ملف | aws s3 cp fichier.txt s3://mon-bucket/ |
| مزامنة | aws s3 sync ./local s3://mon-bucket/ |
أوامر IAM
| الإجراء | الأمر |
|---|---|
| عرض قائمة المستخدمين | aws iam list-users |
| الحصول على سياسة | aws iam get-policy --policy-arn arn:aws:iam::123:policy/X |
| عرض قائمة الأدوار | aws iam list-roles |
Metadata و UserData (من مثيل EC2)
# استرداد البيانات الوصفية للمثيل
curl http://169.254.169.254/latest/meta-data/
# أمثلة على البيانات الوصفية
curl http://169.254.169.254/latest/meta-data/instance-id
curl http://169.254.169.254/latest/meta-data/public-ipv4
curl http://169.254.169.254/latest/meta-data/ami-id
# استرداد user-data (سكريبت بدء التشغيل)
curl http://169.254.169.254/latest/user-data
الخيارات العالمية المفيدة
| الخيار | الوصف | مثال |
|---|---|---|
--profile | استخدام ملف تعريف | aws s3 ls --profile prod |
--region | تحديد المنطقة | aws ec2 describe-instances --region eu-west-1 |
--output | تنسيق المخرج | aws ec2 describe-instances --output table |
--query | تصفية JSON | aws ec2 describe-instances --query 'Reservations[].Instances[].InstanceId' |
--dry-run | اختبار بدون تنفيذ | aws ec2 run-instances --dry-run |
تنسيقات المخرج
# JSON (افتراضي)
aws ec2 describe-instances --output json
# جدول مقروء
aws ec2 describe-instances --output table
# نص خام
aws ec2 describe-instances --output text
احتفظ بهذا المرجع في متناول اليد! تُستخدم هذه الأوامر يوميًا من قبل مسؤولي AWS.
اختبار التحقق
- أي أمر يتحقق من إصدار AWS CLI؟
- أين تُخزن بيانات اعتماد AWS؟
- ما هو تنسيق أمر AWS CLI؟
- لماذا نستخدم
--endpoint-urlمع LocalStack؟ - أي أمر يعرض قائمة الحاويات S3؟
القسم التالي: Cheatsheet AWS CLI Complet