مشاركة عبر


Manage Azure Database for PostgreSQL with Azure SDK for Python

في هذا البدء السريع، تتعلم كيفية استخدام حزمة تطوير تطوير البرمجيات في Azure Python للتفاعل مع قاعدة بيانات Azure لخادم PostgreSQL المرن.

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

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

  • إنشاء نسخة من خادم PostgreSQL مرن
  • إدارة قواعد البيانات
  • تكوين قواعد جدار الحماية
  • تنفيذ عمليات التوسع
  • النسخ الاحتياطي والاستعادة

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

المتطلبات الأساسية

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

حساب 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 وتخصيص معلمات أخرى مثل حجم التخزين وإصدار المحرك وما إلى ذلك.

إشعار

تحاول فئة 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)

إشعار

تقوم الدالة 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()