Freigeben über


Schnellstart: Verwenden von Azure-Bibliotheken (SDK) für Python zum Verwalten einer flexiblen Serverinstanz von PostgreSQL

In dieser Schnellstartanleitung erfahren Sie, wie Sie das Azure Python SDK für die Interaktion mit einer flexiblen Serverinstanz von Azure Database for PostgreSQL verwenden.

Der flexible Server von Azure Database for PostgreSQL ist ein verwalteter Dienst, mit dem Sie hochverfügbare PostgreSQL-Datenbanken in der Cloud ausführen, verwalten und skalieren können. Sie können das Python SDK verwenden, um eine Instanz eines flexiblen Azure Database for PostgreSQL-Servers, mehrere Server oder mehrere Datenbanken auf einem Server bereitzustellen.

Sie können die folgenden Vorgänge mit dieser Bibliothek durchführen:

  1. Erstellen eines PostgreSQL-Flexiblen Servers
  2. Verwalten von Datenbanken
  3. Konfigurieren von Firewallregeln
  4. Skalierungsvorgänge
  5. Sicherung und Wiederherstellung

Diese Anleitung hilft Ihnen, die grundlegenden Funktionen dieses SDK zu erkunden, einschließlich Erstellen einer flexiblen Serverinstanz, Überprüfen des erstellten Servers, Erstellen einer Datenbank und Löschen der Instanz.

Voraussetzungen

Konto mit einem aktiven Abonnement

Ein Azure-Konto mit einem aktiven Abonnement Kostenloses Konto erstellen.

Installieren der Bibliotheken

Installieren Sie die folgenden Azure Python-Bibliotheken.

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

Ausführen des Anmeldebefehls

Melden Sie sich mit azurecli bei Ihrem Konto an, um Ihr Konto zu authentifizieren.

az login

Nachdem dieser Befehl ausgeführt wurde, wählen Sie ein gültiges Konto zum Anmelden aus, und wählen Sie später die Abonnement-ID aus der Liste aus, um sich anzumelden.

Erstellen des Servers

Erstellen Sie eine create_postgres_flexible_server.py-Datei, und fügen Sie den folgenden Code ein.

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

Ersetzen Sie die folgenden Parameter durch eigene Daten:

  • subscription-id: Ihre eigene Abonnement-ID.
  • resource-group: Name der Ressourcengruppe, die Sie verwenden möchten. Wenn sie nicht vorhanden ist, erstellt das Skript eine neue.
  • server-name: Ein eindeutiger Name, der Ihre flexible Serverinstanz von Azure Database for PostgreSQL identifiziert. Der Domänenname postgres.database.azure.com wird an den von Ihnen angegebenen Servernamen angefügt. Der Servername muss mindestens drei Zeichen und höchstens 63 Zeichen umfassen und darf nur Kleinbuchstaben, Ziffern und Bindestriche enthalten.
  • Location: Die Azure-Region, in der Sie die flexible Serverinstanz von Azure Database for PostgreSQL erstellen möchten. Sie definiert den geografischen Standort, an dem sich Ihr Server und dessen Daten befinden. Wählen Sie eine Region in der Nähe Ihrer Benutzer*innen aus, um die Latenz zu verringern. Der Standort sollte im Format der Kurznamen für Azure-Regionen angegeben werden, z. B. westus2, eastus oder northeurope.
  • admin-username: Der Benutzername des primären Administrators für den Server. Nachdem der Server erstellt wurde, können Sie weitere Benutzer erstellen.
  • password: Ein Kennwort für den primären Administrator für den Server. Es muss zwischen acht und 128 Zeichen lang sein. Das Kennwort muss Zeichen aus drei Kategorien enthalten: englische Großbuchstaben, englische Kleinbuchstaben, Zahlen (0–9) und nicht alphanumerische Zeichen (!, $, #, % usw.).

Sie können auch Werte für andere Parameter wie VNet-Name, Subnetzname und private DNS-Zone hinzufügen und andere Parameter wie Speichergröße, Modulversion usw. anpassen.

Hinweis

Die DefaultAzureCredential-Klasse versucht, sich mit verschiedenen Methoden zu authentifizieren, z. B. Umgebungsvariablen, verwaltete Identitäten oder die Azure CLI.
Stellen Sie sicher, dass Sie eine dieser Methoden eingerichtet haben. Weitere Informationen zur Authentifizierung finden Sie in der Dokumentation zum Azure SDK.

Wenn Sie diesen Code ausführen, wird der Instanzerstellungsprozess initiiert, der einige Minuten dauern kann.

Überprüfen der bereitgestellten Ressourcen

Sie können das Python SDK, das Microsoft Azure-Portal, die Azure-Befehlszeilenschnittstelle, die Azure PowerShell und verschiedene andere Tools verwenden, um die Bereitstellung zu überprüfen und die bereitgestellten Ressourcen anzuzeigen. Einige Beispiele finden Sie weiter unten.

Überprüfen der Bereitstellung mit dem Python SDK

Fügen Sie die Funktion check_server_created Ihrem vorhandenen Skript hinzu, um das Serverattribut der PostgreSQLManagementClient-Instanz zu verwenden und zu überprüfen, ob die Instanz des flexiblen Azure Database for PostgreSQL-Servers erstellt wurde:

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

Führen Sie es mit den entsprechenden Parametern aus.

 check_server_created(subscription_id, resource_group, server_name)

Hinweis

Die Funktion check_server_created gibt den Serverstatus zurück, sobald der Server bereitgestellt wurde. Es kann jedoch einige Minuten dauern, bis der Server vollständig verfügbar ist. Sie müssen warten, bis der Server bereit ist, bevor Sie eine Verbindung mit ihm herstellen. Es werden die Parameter Status, ID, Name, Standort usw. in der Antwort auf die Methode „postgres_client.servers.get“ zurückgegeben.

Erstellen einer Datenbank mit Python

Erstellen einer Datenbank auf Ihrem flexiblen Server mit diesem Beispielcode

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

Ersetzen Sie die folgenden Parameter durch eigene Daten

  • subscription-id: Ihre eigene Abonnement-ID.
  • resource-group-name: Der Name der Ressourcengruppe, die Sie verwenden möchten. Das Skript erstellt eine neue Ressourcengruppe, falls sie nicht vorhanden ist.
  • sever-name: Der Name der flexiblen Serverinstanz der Azure-Datenbank, die Sie zuvor erstellt haben
  • database-name: Der Name der zu erstellenden Datenbank.

Bereinigen von Ressourcen

Wenn Sie die flexible Serverinstanz von Azure Database for PostgreSQL nicht mehr benötigen, können Sie sie und die zugeordnete Ressourcengruppe entweder über das Portal, das Python SDK oder die Azure CLI löschen.

Verwenden des Python SDK zum Löschen der Instanz

Erstellen Sie eine „delete_server.py“-Datei, um die Instanz von Azure Database for PostgreSQL Server zu löschen, die erstellt wurde.

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