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

تثبيت 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: تشغيل المثبت

  1. انقر نقرًا مزدوجًا على الملف AWSCLIV2.msi
  2. اتبع معالج التثبيت
  3. اقبل شروط الاستخدام
  4. انقر على "Install"
  5. انتظر حتى ينتهي التثبيت

الخطوة 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
لماذا "test"؟

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:

  1. أغلق وأعد فتح PowerShell
  2. تحقق من PATH: $env:PATH
  3. أعد تثبيت 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
إنشاء AMIaws 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"
تسجيل AMIaws 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تصفية JSONaws 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.


اختبار التحقق​

  1. أي أمر يتحقق من إصدار AWS CLI؟
  2. أين تُخزن بيانات اعتماد AWS؟
  3. ما هو تنسيق أمر AWS CLI؟
  4. لماذا نستخدم --endpoint-url مع LocalStack؟
  5. أي أمر يعرض قائمة الحاويات S3؟

القسم التالي: Cheatsheet AWS CLI Complet