Sdílet prostřednictvím


Rychlý start: Použití knihoven Azure (SDK) pro Python ke správě služby Azure Database for PostgreSQL

V tomto rychlém startu se dozvíte, jak pomocí sady Azure Python SDK pracovat s instancí flexibilního serveru Azure Database for PostgreSQL.

Azure Database for PostgreSQL je spravovaná služba pro spouštění, správu a škálování vysoce dostupných databází PostgreSQL v cloudu. Sadu Python SDK můžete použít ke zřízení instance flexibilního serveru Azure Database for PostgreSQL, více serverů nebo více databází na serveru.

S touto knihovnou můžete provádět následující operace:

  1. Vytvoření instance flexibilního serveru PostgreSQL
  2. Správa databází
  3. Konfigurace pravidel firewallu
  4. Operace škálování
  5. Zálohování a obnovení

Tato příručka vám pomůže prozkoumat základní funkce této sady SDK, včetně vytvoření flexibilní instance serveru, kontroly vytvořeného serveru, vytvoření databáze a odstranění instance.

Požadavky

Účet s aktivním předplatným

Účet Azure s aktivním předplatným Vytvořte si ho zdarma.

Instalace knihoven

Nainstalujte následující knihovny Azure Pythonu.

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

Spuštění příkazu login

Přihlaste se ke svému účtu pomocí azurecli k ověření.

az login

Po spuštění tohoto příkazu vyberte platný účet, který se má přihlásit, a později v seznamu vyberte ID předplatného, ke které se chcete přihlásit.

Vytvoření serveru

Vytvořte create_postgres_flexible_server.py soubor a vložte následující kód.

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

Nahraďte následující parametry vašimi daty:

  • subscription-id: Vaše vlastní ID předplatného.
  • skupina prostředků: Pojmenujte skupinu prostředků, kterou chcete použít. Pokud neexistuje, skript vytvoří nový.
  • název serveru: Jedinečný název, který identifikuje instanci flexibilního serveru Azure Database for PostgreSQL. Název domény postgres.database.azure.com se připojí k zadanému názvu serveru. Název serveru musí mít alespoň tři znaky a maximálně 63 znaků a může obsahovat jenom malá písmena, číslice a pomlčky.
  • Umístění: Oblast Azure, ve které chcete vytvořit instanci flexibilního serveru Azure Database for PostgreSQL. Definuje zeměpisné umístění, kde se nachází váš server a jeho data. Zvolte oblast blízko uživatelům, aby se snížila latence. Umístění by mělo být zadáno ve formátu krátkých názvů oblastí Azure, například westus2, eastusnebo northeurope.
  • admin-username: Primární uživatelské jméno správce serveru. Po vytvoření serveru můžete vytvořit další uživatele.
  • heslo: Heslo pro primárního správce serveru. Musí mít 8 až 128 znaků. Heslo musí obsahovat znaky ze tří kategorií: velká písmena anglické abecedy, malá písmena anglické abecedy, číslice (0 až 9) a neosamocené znaky (!, $, #, %atd.).

Můžete také přidat hodnoty pro další parametry, jako je název virtuální sítě, název podsítě, privátní zóna DNS, a přizpůsobit další parametry, jako je velikost úložiště, verze modulu atd.

Poznámka:

DefaultAzureCredential třída se pokouší ověřit pomocí různých metod, jako jsou proměnné prostředí, spravované identity nebo Azure CLI.
Ujistěte se, že máte nastavenou jednu z těchto metod. Další informace o ověřování najdete v dokumentaci k sadě Azure SDK.

Spuštěním tohoto kódu zahájíte proces vytváření instance, což může trvat několik minut.

Kontrola nasazených prostředků

K ověření nasazení a kontrole nasazených prostředků můžete použít sadu Python SDK, Azure Portal, Azure CLI, Azure PowerShell a různé další nástroje. Níže jsou uvedeny některé příklady.

Ověření nasazení pomocí sady Python SDK

Přidejte do existujícího check_server_created skriptu funkci pro použití atributu serverů instance PostgreSQLManagementClient a zkontrolujte, jestli se vytvořila instance flexibilního serveru Azure Database for 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}'.")

Volejte ho s příslušnými parametry.

 check_server_created(subscription_id, resource_group, server_name)

Poznámka:

Funkce check_server_created vrátí stav serveru ihned po zřízení serveru. Může ale trvat několik minut, než bude server plně dostupný. Než se k němu připojíte, ujistěte se, že čekáte, až bude server připravený. Vrátí stav, ID, název, umístění a další parametry v reakci na metodu postgres_client.servers.get.

Vytvoření databáze pomocí Pythonu

Vytvoření databáze v instanci flexibilního serveru pomocí tohoto ukázkového kódu

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

Nahraďte následující parametry vašimi údaji.

  • subscription-id: Vaše vlastní ID předplatného.
  • název skupiny prostředků: Pojmenujte skupinu prostředků, kterou chcete použít. Skript vytvoří novou skupinu prostředků, pokud tato ještě neexistuje.
  • název-serveru: Název instance flexibilního serveru Azure, kterou jste vytvořili dříve
  • název databáze: Název databáze, kterou chcete vytvořit.

Vyčištění prostředků

Pokud už instanci flexibilního serveru Azure Database for PostgreSQL nepotřebujete, můžete ji odstranit a přidruženou skupinu prostředků pomocí portálu, sady Python SDK nebo Azure CLI.

Odstranění instance pomocí sady Python SDK

Vytvořte soubor delete_server.py pro odstranění instance serveru Azure Database for PostgreSQL, která byla vytvořena.

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