كيفية استخدام مكتبة boto3 للتفاعل مع خدمات AWS في Python

مكتبة boto3 هي المكتبة الرسمية التي توفرها Amazon للتفاعل مع خدمات AWS باستخدام Python. هذه المكتبة تجعل من السهل التعامل مع خدمات AWS مثل S3، DynamoDB، EC2، وLambda، وغيرها. في هذا المقال، سنتعرف على كيفية إعداد مكتبة boto3 واستخدامها للتفاعل مع بعض الخدمات الشائعة في AWS.

إعداد مكتبة boto3

قبل البدء في استخدام boto3، يجب عليك تثبيت المكتبة وإعداد بيانات الاعتماد الخاصة بك للوصول إلى خدمات AWS.

تثبيت boto3

يمكنك تثبيت boto3 باستخدام pip، وهو مدير الحزم في Python:


pip install boto3

إعداد بيانات الاعتماد

للتفاعل مع AWS، ستحتاج إلى إعداد بيانات الاعتماد (Credentials) الخاصة بك. يمكنك القيام بذلك باستخدام aws configure من سطر الأوامر:


aws configure

AWS Access Key ID [None]: YOUR_ACCESS_KEY
AWS Secret Access Key [None]: YOUR_SECRET_KEY
Default region name [None]: us-west-2
Default output format [None]: json

بعد إدخال هذه المعلومات، سيتم تخزين بيانات الاعتماد الخاصة بك في ملف .aws/credentials في مجلد المستخدم الخاص بك.

التفاعل مع S3 باستخدام boto3

S3 هو أحد خدمات التخزين السحابية الأكثر استخدامًا في AWS. يمكن استخدام boto3 لإدارة الملفات (المعروفة باسم “objects”) والمجلدات (المعروفة باسم “buckets”) في S3 بسهولة.

إنشاء Bucket جديد

لإنشاء Bucket جديد في S3، يمكنك استخدام الكود التالي:


import boto3

# إنشاء عميل S3
s3_client = boto3.client('s3')

# إنشاء Bucket جديد
s3_client.create_bucket(Bucket='my-new-bucket', CreateBucketConfiguration={
'LocationConstraint': 'us-west-2'})

print('Bucket created successfully')

رفع ملف إلى S3

يمكنك رفع ملف إلى S3 باستخدام دالة upload_file كما في المثال التالي:


# رفع ملف إلى S3
s3_client.upload_file('local_file.txt', 'my-new-bucket', 'uploaded_file.txt')

print('File uploaded successfully')

تحميل ملف من S3

لتحميل ملف من S3، يمكنك استخدام دالة download_file:


# تحميل ملف من S3
s3_client.download_file('my-new-bucket', 'uploaded_file.txt', 'downloaded_file.txt')

print('File downloaded successfully')

التفاعل مع DynamoDB باستخدام boto3

DynamoDB هو قاعدة بيانات NoSQL تقدمها AWS. يمكن استخدام boto3 لإنشاء جداول وإدارة البيانات في DynamoDB.

إنشاء جدول في DynamoDB

لإنشاء جدول جديد في DynamoDB، يمكنك استخدام الكود التالي:


import boto3

# إنشاء عميل DynamoDB
dynamodb = boto3.resource('dynamodb')

# إنشاء جدول جديد
table = dynamodb.create_table(
    TableName='MyTable',
    KeySchema=[
        {'AttributeName': 'id', 'KeyType': 'HASH'}
    ],
    AttributeDefinitions=[
        {'AttributeName': 'id', 'AttributeType': 'S'}
    ],
    ProvisionedThroughput={
         'ReadCapacityUnits': 5,
         'WriteCapacityUnits': 5
    }
)

print('Table created successfully')

إضافة عنصر إلى الجدول

لإضافة عنصر جديد إلى الجدول، يمكنك استخدام دالة put_item:


# إضافة عنصر جديد إلى الجدول
table.put_item(Item={
'id': '123',
'name': 'John Doe',
'age': 30
})

print('Item added successfully')

قراءة عنصر من الجدول

للحصول على عنصر من الجدول باستخدام مفتاحه الأساسي، يمكنك استخدام دالة get_item:


# قراءة عنصر من الجدول
response = table.get_item(Key={'id': '123'})
item = response['Item']

print(f"Item retrieved: {item}")

التفاعل مع EC2 باستخدام boto3

EC2 هي خدمة الحوسبة السحابية التي تتيح لك تشغيل خوادم افتراضية في AWS. يمكن استخدام boto3 لإدارة هذه الخوادم بطرق متعددة.

بدء تشغيل مثيل EC2

لتشغيل مثيل EC2، يمكنك استخدام الكود التالي:


import boto3

# إنشاء عميل EC2
ec2 = boto3.resource('ec2')

# بدء تشغيل مثيل EC2
instance = ec2.create_instances(
    ImageId='ami-0abcdef1234567890',
    MinCount=1,
    MaxCount=1,
    InstanceType='t2.micro'
)

print(f"Instance started: {instance[0].id}")

إيقاف مثيل EC2

لإيقاف مثيل EC2 قيد التشغيل، يمكنك استخدام الكود التالي:


# إيقاف مثيل EC2
instance[0].stop()

print(f"Instance stopped: {instance[0].id}")

الخلاصة

في هذا المقال، تعلمنا كيفية استخدام مكتبة boto3 للتفاعل مع خدمات AWS باستخدام Python. لقد قمنا بتغطية كيفية إعداد boto3، والتفاعل مع S3، DynamoDB، وEC2. بفضل boto3، يمكنك التحكم في معظم خدمات AWS بسهولة من خلال تطبيقات Python الخاصة بك، مما يجعلها أداة قوية ومرنة لأي مطور يعمل على مشاريع تعتمد على السحابة.