Delen via


Quickstart: Azure-bibliotheken (SDK) voor Python gebruiken om een Azure Database for PostgreSQL te beheren

In deze quickstart leert u hoe u de Azure Python SDK gebruikt om te communiceren met een flexibele serverinstantie van Azure Database for PostgreSQL.

Azure Database for PostgreSQL is een beheerde service voor het uitvoeren, beheren en schalen van maximaal beschikbare PostgreSQL-databases in de cloud. U kunt python-SDK gebruiken om een exemplaar van een flexibele Azure Database for PostgreSQL-server, meerdere servers of meerdere databases op een server in te richten.

U kunt de volgende bewerkingen uitvoeren met deze bibliotheek:

  1. Een flexibele PostgreSQL-serverinstantie maken
  2. Databases beheren
  3. Firewallregels configureren
  4. Opschaling van Operaties
  5. Backup en herstellen

Deze handleiding helpt u de basisfunctionaliteiten van deze SDK te verkennen, zoals het maken van een exemplaar van een flexibele server, het controleren van de gemaakte server, het maken van een database en het verwijderen van het exemplaar.

Vereisten

Account met actief abonnement

Een Azure-account met een actief abonnement Maak er gratis een.

De bibliotheken installeren

Installeer de volgende Azure Python-bibliotheken.

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

Voer de aanmeldingsopdracht uit

Meld u aan bij uw account met behulp van azurecli om uw account te verifiëren.

az login

Nadat deze opdracht is uitgevoerd, selecteert u een geldig account om u aan te melden en selecteert u later de abonnements-id in de lijst om u aan te melden.

De server maken

Maak een create_postgres_flexible_server.py bestand en voeg de volgende code toe.

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

Vervang de volgende parameters door uw gegevens:

  • subscription-id: Uw eigen abonnements-id.
  • resourcegroep: geef de resourcegroep die u wilt gebruiken een naam. Als deze niet bestaat, wordt er een nieuw script gemaakt.
  • servernaam: een unieke naam die uw exemplaar van azure Database for PostgreSQL flexibele server identificeert. De domeinnaam postgres.database.azure.com wordt toegevoegd aan de servernaam die u hebt opgegeven. De servernaam moet ten minste drie tekens en maximaal 63 tekens bevatten en mag alleen kleine letters, cijfers en afbreekstreepjes bevatten.
  • Locatie: de Azure-regio waar u uw flexibele Azure Database voor PostgreSQL-serverinstantie wilt maken. Hiermee definieert u de geografische locatie waar uw server en de bijbehorende gegevens zich bevinden. Kies een regio dicht bij uw gebruikers voor een verminderde latentie. De locatie moet worden opgegeven in de korte namenindeling van de Azure-regio, zoals westus2, eastusof northeurope.
  • admin-username: de gebruikersnaam van de primaire beheerder voor de server. Nadat de server is gemaakt, kunt u extra gebruikers maken.
  • wachtwoord: een wachtwoord voor de primaire beheerder voor de server. Dit wachtwoord moet tussen 8 en 128 tekens bevatten. Uw wachtwoord moet tekens bevatten uit drie categorieën: Nederlandse hoofdletters, Nederlandse kleine letters, cijfers (0 tot en met 9) en niet-alfabetische tekens (!, $, #, %, enzovoort).

U kunt ook waarden toevoegen voor andere parameters, zoals vnet-naam, subnetnaam, privé-DNS-zone en andere parameters aanpassen, zoals de opslaggrootte, de engineversie, enzovoort.

Notitie

De klasse DefaultAzureCredential probeert te verifiëren met behulp van verschillende methoden, zoals omgevingsvariabelen, beheerde identiteiten of de Azure CLI.
Zorg ervoor dat u een van deze methoden hebt ingesteld. Meer informatie over verificatie vindt u in de Documentatie van De Azure SDK.

Wanneer u deze code uitvoert, wordt het proces voor het aanmaken van een instantie gestart. Dit kan enkele minuten duren.

Uitgerolde middelen bekijken

U kunt de Python SDK, Azure Portal, Azure CLI, Azure PowerShell en verschillende andere hulpprogramma's gebruiken om de implementatie te valideren en de geïmplementeerde resources te controleren. Hieronder ziet u enkele voorbeelden.

Implementatie valideren met Python SDK

Voeg de check_server_created functie toe aan uw bestaande script om het serverskenmerk van het PostgreSQLManagementClient-exemplaar te gebruiken om te controleren of het flexibele serverexemplaren van Azure Database for PostgreSQL is gemaakt:

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

Roep deze aan met de juiste parameters.

 check_server_created(subscription_id, resource_group, server_name)

Notitie

De check_server_created functie geeft de serverstatus terug zodra de server is ingevuld. Het kan echter enkele minuten duren voordat de server volledig beschikbaar is. Zorg ervoor dat u wacht totdat de server gereed is voordat u er verbinding mee maakt. De status, id, naam, locatie en andere parameters worden geretourneerd als reactie op de methode postgres_client.servers.get.

Database maken met Python

Maak een database in uw flexibele serverinstantie met deze voorbeeldcode

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

Vervang de volgende parameters door uw gegevens

  • subscription-id: Uw eigen abonnements-id.
  • resource-group-name: geef de resourcegroep die u wilt gebruiken. Met het script wordt een nieuwe resourcegroep gemaakt als deze niet bestaat.
  • servernaam: De naam van de flexibele Azure-database server instantie die u eerder hebt gemaakt.
  • databasenaam: de naam van de database die u wilt maken.

Middelen opschonen

Als u het flexibele serverexemplaar van Azure Database for PostgreSQL niet meer nodig hebt, kunt u deze en de bijbehorende resourcegroep verwijderen met behulp van de portal, Python SDK of Azure CLI.

Python SDK gebruiken om het exemplaar te verwijderen

Maak een 'delete_server.py'-bestand om het Azure Databases for PostgreSQL Server-exemplaar te verwijderen dat is gemaakt.

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