Bagikan melalui


Mulai cepat: Menggunakan pustaka Azure (SDK) untuk Python untuk mengelola Azure Database for PostgreSQL

Dalam panduan singkat ini, Anda akan mempelajari cara menggunakan Azure Python SDK untuk berinteraksi dengan instance server fleksibel Azure Database for PostgreSQL.

Azure Database for PostgreSQL adalah layanan terkelola untuk menjalankan, mengelola, dan menskalakan database PostgreSQL yang sangat tersedia di cloud. Anda dapat menggunakan Python SDK untuk menyediakan instans server fleksibel Azure Database for PostgreSQL, beberapa server, atau beberapa database di server.

Anda dapat melakukan operasi berikut dengan pustaka ini:

  1. Membuat instans server fleksibel PostgreSQL
  2. Mengelola Database
  3. Konfigurasi Aturan Firewall
  4. Skalasi Operasi
  5. Cadangkan dan Pulihkan

Panduan ini membantu Anda menjelajahi fungsionalitas dasar SDK ini, termasuk membuat instans server yang fleksibel, meninjau server yang dibuat, membuat database, dan menghapus instans.

Prasyarat

Akun dengan langganan aktif

Akun Azure dengan langganan aktif Buat akun secara gratis.

Instal pustaka

Instal pustaka Azure Python berikut ini.

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

Jalankan perintah masuk

Masuk ke akun Anda menggunakan azurecli untuk mengautentikasi akun Anda.

az login

Setelah perintah ini dijalankan, pilih akun yang valid untuk masuk dan kemudian pilih ID langganan dari daftar untuk masuk.

Membuat server

Buat create_postgres_flexible_server.py file dan sertakan kode berikut.

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()

Ganti parameter berikut dengan data Anda:

  • id langganan: ID langganan Anda sendiri.
  • grup sumber daya: Beri nama grup sumber daya yang ingin Anda gunakan. Jika tidak ada, skrip tersebut akan membuat yang baru.
  • nama server: Nama unik yang mengidentifikasi instans server fleksibel Azure Database for PostgreSQL Anda. Nama postgres.database.azure.com domain ditambahkan ke nama server yang Anda berikan. Nama server harus minimal tiga karakter dan paling banyak 63 karakter dan hanya boleh berisi huruf kecil, angka, dan tanda hubung.
  • Lokasi: Wilayah Azure tempat Anda ingin membuat instans server fleksibel Azure Database for PostgreSQL. Ini menentukan lokasi geografis tempat server Anda dan datanya berada. Pilih wilayah yang dekat dengan pengguna Anda untuk mengurangi latensi. Lokasi harus ditentukan dalam format nama pendek wilayah Azure, seperti westus2, , eastusatau northeurope.
  • admin-username: Nama pengguna administrator utama untuk server. Setelah server dibuat, Anda dapat membuat pengguna tambahan.
  • kata sandi: Kata sandi untuk administrator utama untuk server. Kata sandi harus terdiri antara 8 dan 128 karakter. Kata sandi Anda harus berisi karakter dari tiga kategori: huruf besar bahasa Inggris, huruf kecil bahasa Inggris, angka (0 hingga 9), dan karakter non-infanumerik (!, $, #, %, dll.).

Anda juga dapat menambahkan nilai untuk parameter lain seperti vnet-name, subnet-name, private-DNS-zone, dan menyesuaikan parameter lain seperti ukuran penyimpanan, versi mesin, dll.

Catatan

Kelas DefaultAzureCredential mencoba mengautentikasi menggunakan berbagai metode, seperti variabel lingkungan, identitas terkelola, atau Azure CLI.
Pastikan Anda memiliki salah satu metode ini yang disiapkan. Anda dapat menemukan informasi selengkapnya tentang autentikasi dalam dokumentasi Azure SDK.

Menjalankan kode ini memulai proses pembuatan instans, yang mungkin memakan waktu beberapa menit untuk diselesaikan.

Meninjau sumber daya yang disebarkan

Anda dapat menggunakan Python SDK, portal Azure, Azure CLI, Azure PowerShell, dan berbagai alat lainnya untuk memvalidasi penyebaran dan meninjau sumber daya yang disebarkan. Beberapa contoh disediakan di bawah ini.

Memvalidasi penyebaran dengan Python SDK

check_server_created Tambahkan fungsi ke skrip yang ada untuk menggunakan atribut server instans PostgreSQLManagementClient untuk memeriksa apakah instans server fleksibel Azure Database for PostgreSQL dibuat:

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}'.")

Panggil dengan parameter yang sesuai.

 check_server_created(subscription_id, resource_group, server_name)

Catatan

Fungsi check_server_created mengembalikan keadaan server segera setelah server disediakan. Namun, server mungkin membutuhkan waktu beberapa menit untuk sepenuhnya tersedia. Pastikan Anda menunggu server Siap sebelum menyambungkannya. Ini akan mengembalikan status, ID, nama, lokasi, dan parameter lainnya sebagai respons terhadap metode postgres_client.servers.get.

Membuat database menggunakan Python

Buat database di instans server fleksibel Anda dengan kode sampel ini

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()

Ganti parameter berikut dengan data Anda

  • id langganan: ID langganan Anda sendiri.
  • resource-group-name: Beri nama grup sumber daya yang ingin Anda gunakan. Naskah membuat grup sumber daya baru jika grup tersebut tidak ada sebelumnya.
  • sever-name: Nama instans server fleksibel database Azure yang Anda buat sebelumnya
  • nama database: Nama database yang ingin Anda buat.

Membersihkan sumber daya

Jika Anda tidak lagi memerlukan instans server fleksibel Azure Database for PostgreSQL, Anda dapat menghapusnya dan grup sumber daya terkait menggunakan Portal, Python SDK, atau Azure CLI.

Menggunakan Python SDK untuk menghapus instans

Buat file 'delete_server.py' untuk menghapus instans Azure Databases for PostgreSQL Server yang dibuat.

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()