Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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:
- Skapa en flexibel PostgreSQL-serverinstans
- Hantera databaser
- Konfigurera brandväggsregler
- Skalningsåtgärder
- 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.comlä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,eastusellernortheurope.
- 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()