مشاركة عبر


التشغيل السريع: استخدام مكتبات Azure (SDK) ل Python لإدارة قاعدة بيانات Azure ل PostgreSQL

في هذا التشغيل السريع، ستتعلم كيفية استخدام Azure Python SDK للتفاعل مع قاعدة بيانات Azure لمثيل الخادم المرن PostgreSQL.

قاعدة بيانات Azure ل PostgreSQL هي خدمة مدارة لتشغيل قواعد بيانات PostgreSQL عالية التوفر وإدارتها وتوسيع نطاقها في السحابة. يمكنك استخدام Python SDK لتوفير قاعدة بيانات Azure لمثيل خادم مرن PostgreSQL أو خوادم متعددة أو قواعد بيانات متعددة على خادم.

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

  1. إنشاء مثيل خادم PostgreSQL مرن
  2. إدارة قواعد البيانات
  3. تكوين قواعد جدار الحماية
  4. عمليات التحجيم
  5. النسخ الاحتياطي والاستعادة

يساعدك هذا الدليل على استكشاف الوظائف الأساسية لحزمة SDK هذه، بما في ذلك إنشاء مثيل خادم مرن، ومراجعة الخادم الذي تم إنشاؤه، وإنشاء قاعدة بيانات، وحذف المثيل.

Prerequisites

حساب باشتراك نشط

حساب Azure باشتراك نشط قم بإنشاء حساب مجانا.

تثبيت المكتبات

قم بتثبيت مكتبات Azure Python التالية.

pip install azure-mgmt-resource
pip install azure-identity
pip install azure-mgmt-postgresqlflexibleservers

قم بتشغيل أمر تسجيل الدخول

قم بتسجيل الدخول إلى حسابك باستخدام azurecli مصادقة حسابك.

az login

بمجرد تنفيذ هذا الأمر، حدد حسابا صالحا لتسجيل الدخول ثم حدد لاحقا معرف الاشتراك من القائمة لتسجيل الدخول.

إنشاء الخادم

قم بإنشاء create_postgres_flexible_server.py ملف وقم بتضمين التعليمات البرمجية التالية.

from azure.identity import DefaultAzureCredential
from azure.mgmt.postgresqlflexibleservers import PostgreSQLManagementClient

def main():
    client = PostgreSQLManagementClient(
        credential=DefaultAzureCredential(),
        subscription_id="<subscription-id>",
    )

    response = client.servers.begin_create(
        resource_group_name="<resource-group-name>",
        server_name="<server-name>",
        parameters={
            "location": "<region>",
            "properties": {
                "administratorLogin": "<admin-username>",
                "administratorLoginPassword": "<password>",
                "availabilityZone": "1",
                "backup": {"backupRetentionDays": 7, "geoRedundantBackup": "Disabled"},
                "createMode": "Create",
                "highAvailability": {"mode": "ZoneRedundant"},
                "network": {
                    "delegatedSubnetResourceId": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Network/virtualNetworks/<vnet-name>/subnets/<subnet-name>",
                    "privateDnsZoneArmResourceId": "/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.Network/privateDnsZones/<private-DNS-zone-name>.postgres.database.azure.com",
                },
                "version": "<pg-version>",
            },
            "sku": {"name": "<sku-name>", "tier": "<tier-type>"},
            "tags": {"ElasticServer": "1"},
        },
    ).result()
    print(response)

if __name__ == "__main__":
    main()

استبدل المعلمات التالية ببياناتك:

  • subscription-id: معرف الاشتراك الخاص بك.
  • مجموعة الموارد: قم بتسمية مجموعة الموارد التي تريد استخدامها. إذا لم يكن موجودا ، فسيقوم البرنامج النصي بإنشاء نص جديد.
  • server-name: اسم فريد يحدد قاعدة بيانات Azure لمثيل الخادم المرن PostgreSQL. يتم إلحاق اسم postgres.database.azure.com المجال باسم الخادم الذي قدمته. يجب أن يتكون اسم الخادم من ثلاثة أحرف على الأقل و 63 حرفا على الأكثر ويمكن أن يحتوي فقط على أحرف صغيرة وأرقام وواصلات.
  • الموقع: منطقة Azure حيث تريد إنشاء قاعدة بيانات Azure لمثيل الخادم المرن PostgreSQL. يحدد الموقع الجغرافي حيث يوجد الخادم الخاص بك وبياناته. اختر منطقة قريبة من المستخدمين لتقليل زمن الوصول. يجب تحديد الموقع بتنسيق الأسماء المختصرة لمنطقة Azure، مثل westus2، eastusأو northeurope.
  • admin-username: اسم مستخدم المسؤول الأساسي للخادم. بعد إنشاء الخادم، يمكنك إنشاء مستخدمين إضافيين.
  • كلمة المرور: كلمة مرور للمسؤول الأساسي للخادم. يجب أن يحتوي على ما بين 8 و 128 حرفا. يجب أن تحتوي كلمة المرور الخاصة بك على أحرف من ثلاث فئات: الأحرف الإنجليزية الكبيرة والأحرف الإنجليزية الصغيرة والأرقام (من 0 إلى 9) والأحرف غير الأبجدية الرقمية (!، $، #، %، إلخ).

يمكنك أيضا إضافة قيم لمعلمات أخرى مثل vnet-name و subnet-name و private-DNS-zone وتخصيص معلمات أخرى مثل حجم التخزين وإصدار المحرك وما إلى ذلك.

Note

تحاول فئة DefaultAzureCredential المصادقة باستخدام طرق مختلفة، مثل متغيرات البيئة أو الهويات المدارة أو Azure CLI.
تأكد من إعداد إحدى هذه الطرق. يمكنك العثور على مزيد من المعلومات حول المصادقة في وثائق Azure SDK.

يؤدي تشغيل هذه التعليمات البرمجية إلى بدء عملية إنشاء المثيل، والتي قد تستغرق بضع دقائق حتى تكتمل.

مراجعة الموارد المنشورة

يمكنك استخدام Python SDK ومدخل Microsoft Azure وAzure CLI وAzure PowerShell والعديد من الأدوات الأخرى للتحقق من صحة التوزيع ومراجعة الموارد الموزعة. وترد أدناه بعض الأمثلة.

التحقق من صحة النشر باستخدام Python SDK

أضف الدالة check_server_created إلى البرنامج النصي الحالي لاستخدام سمة الخوادم لمثيل PostgreSQLManagementClient للتحقق مما إذا كان قد تم إنشاء مثيل الخادم المرن لقاعدة بيانات Azure ل PostgreSQL:

def check_server_created(subscription_id, resource_group, server_name):
    # Authenticate with your Azure account
    credential = DefaultAzureCredential()

    # Create PostgreSQL management client
    postgres_client = PostgreSQLManagementClient(credential, subscription_id)

    try:
        server = postgres_client.servers.get(resource_group, server_name)
        if server:
            print(f"Server '{server_name}' exists in resource group '{resource_group}'.")
            print(f"Server state: {server.state}")
        else:
            print(f"Server '{server_name}' not found in resource group '{resource_group}'.")
    except Exception as e:
        print(f"Error occurred: {e}")
        print(f"Server '{server_name}' not found in resource group '{resource_group}'.")

أطلق عليها المعلمات المناسبة.

 check_server_created(subscription_id, resource_group, server_name)

Note

تقوم الدالة check_server_created بإرجاع حالة الخادم بمجرد توفير الخادم. ومع ذلك ، قد يستغرق الخادم بضع دقائق حتى يصبح متاحا بالكامل. تأكد من الانتظار حتى يصبح الخادم جاهزا قبل الاتصال به. سيعيد الحالة والمعرف والاسم والموقع والمعلمات الأخرى استجابة لأسلوب postgres_client.servers.get.

إنشاء قاعدة بيانات باستخدام Python

قم بإنشاء قاعدة بيانات في مثيل الخادم المرن باستخدام نموذج التعليمات البرمجية هذا

from azure.identity import DefaultAzureCredential
from azure.mgmt.postgresqlflexibleservers import PostgreSQLManagementClient

def main():
    client = PostgreSQLManagementClient(
        credential=DefaultAzureCredential(),
        subscription_id=<subscription-id>,
    )
    # Create database
    response = client.databases.begin_create(
        resource_group_name="<resource-group-name>",
        server_name="<server-name>",
        database_name="<database-name>",
        parameters={"properties": {"charset": "utf8", "collation": "en_US.utf8"}},
    ).result()
    print(response)

if __name__ == "__main__":
    main()

استبدل المعلمات التالية ببياناتك

  • subscription-id: معرف الاشتراك الخاص بك.
  • resource-group-name: قم بتسمية مجموعة الموارد التي تريد استخدامها. يقوم البرنامج النصي بإنشاء مجموعة موارد جديدة إذا لم تكن موجودة.
  • sever-name: اسم مثيل الخادم المرن لقاعدة بيانات Azure الذي قمت بإنشائه من قبل
  • database-name: اسم قاعدة البيانات التي تريد إنشاؤها.

تنظيف الموارد

إذا لم تعد بحاجة إلى مثيل الخادم المرن لقاعدة بيانات Azure ل PostgreSQL، فيمكنك حذفه ومجموعة الموارد المقترنة باستخدام المدخل أو Python SDK أو Azure CLI.

استخدم Python SDK لحذف المثيل

قم بإنشاء ملف "delete_server.py" لحذف مثيل Azure Databases for PostgreSQL Server الذي تم إنشاؤه.

from azure.identity import DefaultAzureCredential
from azure.mgmt.postgresqlflexibleservers import PostgreSQLManagementClient

def main():
    client = PostgreSQLManagementClient(
          credential=DefaultAzureCredential(),
          subscription_id=<subscription-id>,)
    client.servers.begin_delete(
          resource_group_name=<rg-name>,
          server_name=<server-name>,
    ).result()
if __name__ == "__main__":
    main()