Aracılığıyla paylaş


Hızlı Başlangıç: PostgreSQL için Azure Veritabanı'nı yönetmek için Python için Azure kitaplıklarını (SDK) kullanma

Bu hızlı başlangıçta, PostgreSQL için Azure Veritabanı esnek sunucu örneğiyle etkileşime geçmek için Azure Python SDK'sını kullanmayı öğreneceksiniz.

PostgreSQL için Azure Veritabanı, bulutta yüksek oranda kullanılabilir PostgreSQL veritabanlarını çalıştırmaya, yönetmeye ve ölçeklendirmeye yönelik yönetilen bir hizmettir. Python SDK'yi kullanarak, bir Azure Database for PostgreSQL esnek sunucu örneği, birden fazla sunucu veya bir sunucuda birden fazla veritabanı tahsis edebilirsiniz.

Bu kütüphane ile aşağıdaki işlemleri gerçekleştirebilirsiniz:

  1. PostgreSQL esnek sunucu örneği oluşturma
  2. Veritabanlarını Yönetme
  3. Güvenlik Duvarı Kurallarını Yapılandırma
  4. Ölçeklendirme İşlemleri
  5. Yedekleme ve Geri Yükleme

Bu kılavuz, esnek bir sunucu örneği oluşturma, oluşturulan sunucuyu inceleme, veri tabanı oluşturma ve örneği silme gibi bu SDK'nın temel işlevlerini keşfetmenize yardımcı olur.

Prerequisites

Aktif abonelikli hesap

Etkin bir aboneliğe sahip bir Azure hesabı Ücretsiz olarak bir tane oluşturun.

Kütüphaneleri yükle.

Aşağıdaki Azure Python kütüphanelerini yükleyin.

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

Giriş komutunu çalıştır

Hesabınızı doğrulamak için azurecli kullanarak hesabınıza giriş yapın.

az login

Bu komut yürütüldükten sonra oturum açmak için geçerli bir hesap seçin ve ardından oturum açmak için listeden abonelik kimliğini seçin.

Sunucuyu oluştur

Bir create_postgres_flexible_server.py dosyası oluşturun ve aşağıdaki kodu dahil edin.

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

Aşağıdaki parametreleri verilerinizle değiştirin:

  • subscription-id: Kendi abonelik kimliğiniz.
  • resource-group: Kullanmak istediğiniz kaynak grubuna bir isim verin. Mevcut değilse, betik yeni bir tane oluşturur.
  • server-name: Azure Veritabanı için PostgreSQL esnek sunucu örneğinizi tanımlayan, benzersiz bir adı belirtir. Sağladığınız sunucu adına postgres.database.azure.com etki alanı adı eklenir. Sunucu adı en az üç karakter ve en çok 63 karakter olmalıdır ve yalnızca küçük harf, sayı ve kısa çizgi içerebilir.
  • Konum: Azure Database for PostgreSQL esnek sunucu örneğinizi oluşturmak istediğiniz Azure bölgesi. Sunucunuzun ve verilerinizin bulunduğu coğrafi konumu tanımlar. Kullanıcılarınıza daha yakın bir bölge seçerek gecikmeyi azaltın. Yer, westus2, eastus veya northeurope gibi Azure bölge kısa adı formatında belirtilmelidir.
  • admin-username: Sunucunun birincil yönetici kullanıcı adı. Sunucu oluşturulduktan sonra ek kullanıcılar oluşturabilirsiniz.
  • parola: Sunucu için birincil yönetici parolası. 8 ila 128 karakter arasında olmalıdır. Şifreniz, üç kategoriden karakterler içermelidir: İngilizce büyük harfler, İngilizce küçük harfler, rakamlar (0'dan 9'a kadar) ve alfanumerik olmayan karakterler (!, $, #, %, vb.).

Diğer parametreler için vnet-ismi, alt ağ ismi, özel-DNS-bölgesi gibi değerler ekleyebilir ve depolama boyutu, motor versiyonu gibi diğer parametreleri özelleştirebilirsiniz.

Note

DefaultAzureCredential sınıfı, ortam değişkenleri, yönetilen kimlikler veya Azure CLI gibi çeşitli yöntemler kullanarak kimlik doğrulamayı denemektedir.
Bu yöntemlerden birinin kurulu olduğundan emin olun. Kimlik doğrulama hakkında daha fazla bilgiyi Azure SDK belgelerinde bulabilirsiniz.

Bu kodu çalıştırmak, bir örnek oluşturma sürecini başlatır ve tamamlanması birkaç dakika sürebilir.

Dağıtılmış kaynakları gözden geçir.

Python SDK, Azure portal, Azure CLI, Azure PowerShell ve diğer çeşitli araçları kullanarak dağıtımı doğrulayabilir ve dağıtılan kaynakları inceleyebilirsiniz. Aşağıda bazı örnekler verilmektedir.

Python SDK ile dağıtımı doğrula

Mevcut betiğinize check_server_created fonksiyonunu ekleyerek, bir Azure Veritabanı için PostgreSQL esnek sunucu örneğinin oluşturulup oluşturulmadığını kontrol etmek amacıyla PostgreSQLManagementClient örneğinin sunucular özniteliğini kullanın.

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

Uygun parametrelerle çağırın.

 check_server_created(subscription_id, resource_group, server_name)

Note

check_server_created işlevi, sunucu hazırlanınca sunucu durumunu hemen döndürür. Ancak, sunucunun tamamen kullanıma hazır hale gelmesi birkaç dakika alabilir. Sunucunun Hazır olmasını beklediğinizden emin olun ve ondan sonra bağlanın. postgres_client.servers.get method'una yanıt olarak, durumu, kimliği, adı, konumu ve diğer parametreleri döndürebilir.

Python kullanarak veritabanı oluşturun

Bu örnek kodla esnek sunucu örneğinizde veritabanı oluşturma

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

Aşağıdaki parametreleri verilerinizle değiştirin.

  • subscription-id: Kendi abonelik kimliğiniz.
  • resource-group-name: Kullanmak istediğiniz kaynak grubunu adlandırın. Betik, mevcut değilse yeni bir kaynak grubu oluşturur.
  • sever-name: Daha önce oluşturduğunuz Azure veritabanı esnek sunucu örneğinin adı
  • database-name: Oluşturmak istediğiniz veritabanının adı.

Kaynakları temizle

Azure Database for PostgreSQL esnek sunucu örneğine artık ihtiyacınız yoksa, onu ve ilişkili kaynak grubunu Portal, Python SDK veya Azure CLI kullanarak silebilirsiniz.

Python SDK kullanarak örneği silin.

'Oluşturduğunuz Azure Databases for PostgreSQL Server örneğini silmek için bir 'delete_server.py' dosyası oluşturun.'

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