Dela via


Snabbstart: Använda Azure-bibliotek (SDK) för Python för att hantera en Azure Database for PostgreSQL

I den här snabbstarten får du lära dig hur du använder Azure Python SDK för att interagera med en flexibel Azure Database for PostgreSQL-serverinstans.

Azure Database for PostgreSQL är en hanterad tjänst för att köra, hantera och skala PostgreSQL-databaser med hög tillgänglighet i molnet. Du kan använda Python SDK för att etablera en flexibel Azure Database for PostgreSQL-serverinstans, flera servrar eller flera databaser på en server.

Du kan utföra följande åtgärder med det här biblioteket:

  1. Skapa en flexibel PostgreSQL-serverinstans
  2. Hantera databaser
  3. Konfigurera brandväggsregler
  4. Skalningsåtgärder
  5. Säkerhetskopiera och återställa

Den här guiden hjälper dig att utforska de grundläggande funktionerna i denna SDK, inklusive att skapa en flexibel serverinstans, granska den skapade servern, skapa en databas och ta bort instansen.

Förutsättningar

Konto med aktiv prenumeration

Ett Azure-konto med en aktiv prenumeration Skapa ett kostnadsfritt.

Installera biblioteken

Installera följande Azure Python-bibliotek.

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

Kör inloggningskommandot

Logga in på ditt konto med för azurecli att autentisera ditt konto.

az login

När det här kommandot har körts väljer du ett giltigt konto för att logga in och väljer senare prenumerations-ID:t i listan för att logga in.

Skapa servern

Skapa en create_postgres_flexible_server.py fil och inkludera följande kod.

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

Ersätt följande parametrar med dina data:

  • prenumerations-ID: Ditt eget prenumerations-ID.
  • resursgrupp: Namnge den resursgrupp som du vill använda. Om det inte finns skapar skriptet ett nytt.
  • servernamn: Ett unikt namn som identifierar din flexibla serverinstans i Azure Database for PostgreSQL. Domännamnet postgres.database.azure.com läggs till i det servernamn som du angav. Servernamnet måste innehålla minst tre tecken och högst 63 tecken och får bara innehålla gemener, siffror och bindestreck.
  • Plats: Den Azure-region där du vill skapa en flexibel Azure Database for PostgreSQL-serverinstans. Den definierar den geografiska plats där servern och dess data finns. Välj en region nära dina användare för kortare svarstid. Platsen ska anges i formatet korta namn i Azure-regionen, till exempel westus2, eastuseller northeurope.
  • admin-username: Det primära administratörsanvändarnamnet för servern. När servern har skapats kan du skapa ytterligare användare.
  • lösenord: Ett lösenord för den primära administratören för servern. Det måste innehålla mellan 8 och 128 tecken. Lösenordet måste innehålla tecken från tre kategorier: engelska versaler, engelska gemener, siffror (0 till 9) och icke-numeriska tecken (!, $, #, %, osv.).

Du kan också lägga till värden för andra parametrar som vnet-name, undernätsnamn, private-DNS-zone och anpassa andra parametrar som lagringsstorlek, motorversion osv.

Kommentar

Klassen DefaultAzureCredential försöker autentisera med hjälp av olika metoder, till exempel miljövariabler, hanterade identiteter eller Azure CLI.
Kontrollera att du har konfigurerat någon av dessa metoder. Mer information om autentisering finns i Azure SDK-dokumentationen.

När du kör den här koden initieras processen för att skapa instansen, vilket kan ta några minuter att slutföra.

Granska distribuerade resurser

Du kan använda Python SDK, Azure Portal, Azure CLI, Azure PowerShell och olika andra verktyg för att verifiera distributionen och granska de distribuerade resurserna. Några exempel finns nedan.

Verifiera distribution med Python SDK

Lägg till funktionen i check_server_created ditt befintliga skript för att använda serverattributet för PostgreSQLManagementClient-instansen för att kontrollera om Azure Database for PostgreSQL– flexibel serverinstans har skapats:

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

Anropa den med lämpliga parametrar.

 check_server_created(subscription_id, resource_group, server_name)

Kommentar

Funktionen check_server_created returnerar servertillståndet så snart servern har etablerats. Det kan dock ta några minuter innan servern blir helt tillgänglig. Se till att du väntar tills servern är klar innan du ansluter till den. Det skulle returnera tillstånd, ID, namn, plats och andra parametrar som svar på metoden postgres_client.servers.get.

Skapa databas med Python

Skapa en databas i din flexibla serverinstans med den här exempelkoden

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

Ersätt följande parametrar med dina data

  • prenumerations-ID: Ditt eget prenumerations-ID.
  • resource-group-name: Namnge den resursgrupp som du vill använda. Skriptet skapar en ny resursgrupp om den inte finns.
  • sever-name: Namnet på azure-databasens flexibla serverinstans som du skapade tidigare
  • database-name: Namnet på den databas som du vill skapa.

Rensa resurser

Om du inte längre behöver den flexibla serverinstansen Azure Database for PostgreSQL kan du ta bort den och den associerade resursgruppen med antingen portalen, Python SDK eller Azure CLI.

Använd Python SDK för att ta bort instansen

Skapa en "delete_server.py"-fil för att ta bort Azure Databases for PostgreSQL Server-instansen som skapades.

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