Udostępnij za pomocą


Szybki start: zarządzanie usługą Azure Database for PostgreSQL przy użyciu bibliotek platformy Azure (SDK) dla języka Python

W tym szybkim przewodniku dowiesz się, jak używać Azure SDK dla języka Python do interakcji z elastycznym wystąpieniem serwera Azure Database dla PostgreSQL.

Azure Database for PostgreSQL to zarządzana usługa służąca do uruchamiania baz danych PostgreSQL o wysokiej dostępności oraz zarządzania nimi w chmurze. Zestaw SDK języka Python można wykorzystać do aprowizacji elastycznego wystąpienia serwera usługi Azure Database for PostgreSQL, wielu serwerów lub wielu baz danych na serwerze.

Następujące operacje można wykonać za pomocą tej biblioteki:

  1. Tworzenie wystąpienia serwera elastycznego PostgreSQL
  2. Zarządzanie bazami danych
  3. Konfigurowanie reguł zapory
  4. Operacje skalowania
  5. Tworzenie kopii zapasowej i przywracanie

Ten przewodnik ułatwia zapoznanie się z podstawowymi funkcjami tego zestawu SDK, w tym tworzeniem wystąpienia serwera elastycznego, przeglądaniem utworzonego serwera, tworzeniem bazy danych i usuwaniem wystąpienia.

Wymagania wstępne

Konto z aktywną subskrypcją

Konto platformy Azure z aktywną subskrypcją Utwórz je bezpłatnie.

Instalowanie bibliotek

Zainstaluj następujące biblioteki języka Python platformy Azure.

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

Uruchom polecenie logowania

Zaloguj się do swojego konta przy użyciu polecenia azurecli w celu uwierzytelnienia konta.

az login

Po wykonaniu tego polecenia wybierz prawidłowe konto, aby się zalogować, a następnie wybierz identyfikator subskrypcji z listy, aby się zalogować.

Tworzenie serwera

create_postgres_flexible_server.py Utwórz plik i dołącz następujący 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()

Zastąp następujące parametry danymi:

  • subscription-id: Własny identyfikator subskrypcji.
  • grupa zasobów: nazwij grupę zasobów, której chcesz użyć. Jeśli nie istnieje, skrypt tworzy nowy.
  • nazwa-serwera: unikatowa nazwa identyfikująca wystąpienie serwera elastycznego usługi Azure Database for PostgreSQL. Nazwa postgres.database.azure.com domeny jest dołączana do podanej nazwy serwera. Nazwa serwera musi zawierać co najmniej trzy znaki i maksymalnie 63 znaki i może zawierać tylko małe litery, cyfry i łączniki.
  • Lokalizacja: region świadczenia usługi Azure, w którym chcesz utworzyć wystąpienie serwera elastycznego usługi Azure Database for PostgreSQL. Definiuje lokalizację geograficzną, w której znajduje się serwer i jego dane. Wybierz region zbliżony do użytkowników, aby zmniejszyć opóźnienie. Lokalizację należy określić w formacie krótkich nazw regionów platformy Azure, takich jak westus2, eastuslub northeurope.
  • admin-username: nazwa użytkownika administratora podstawowego dla serwera. Po utworzeniu serwera można utworzyć dodatkowych użytkowników.
  • hasło: hasło administratora podstawowego serwera. Musi zawierać od 8 do 128 znaków. Hasło musi zawierać znaki z trzech kategorii: wielkie litery angielskie, małe litery angielskie, cyfry (od 0 do 9) i znaki nienumeryczne (!, $, #, %itp.).

Możesz również dodać wartości dla innych parametrów, takich jak nazwa sieci wirtualnej, nazwa podsieci, prywatna strefa DNS i dostosować inne parametry, takie jak rozmiar pamięci, wersja silnika itp.

Uwaga

Klasa DefaultAzureCredential próbuje uwierzytelnić się przy użyciu różnych metod, takich jak zmienne środowiskowe, tożsamości zarządzane lub interfejs wiersza polecenia platformy Azure.
Upewnij się, że masz jedną z tych metod skonfigurowaną. Więcej informacji na temat uwierzytelniania można znaleźć w dokumentacji zestawu Azure SDK.

Uruchomienie tego kodu inicjuje proces tworzenia wystąpienia, który może potrwać kilka minut.

Przeglądanie wdrożonych zasobów

Aby zweryfikować wdrożenie i przejrzeć wdrożone zasoby, możesz użyć zestawu SDK języka Python, witryny Azure Portal, interfejsu wiersza polecenia platformy Azure, programu Azure PowerShell i różnych innych narzędzi. Poniżej przedstawiono kilka przykładów.

Weryfikowanie wdrożenia przy użyciu zestawu Python SDK

Dodaj funkcję check_server_created do istniejącego skryptu, aby użyć atrybutu servers wystąpienia PostgreSQLManagementClient, aby sprawdzić, czy utworzono elastyczny serwer w usłudze 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}'.")

Wywołaj go przy użyciu odpowiednich parametrów.

 check_server_created(subscription_id, resource_group, server_name)

Uwaga

Funkcja check_server_created zwraca stan serwera zaraz po aprowizacji serwera. Jednak serwer może potrwać kilka minut, zanim stanie się w pełni dostępny. Upewnij się, że serwer jest gotowy przed nawiązaniem z nim połączenia. Zwraca stan, identyfikator, nazwę, lokalizację i inne parametry w odpowiedzi na metodę postgres_client.servers.get.

Tworzenie bazy danych przy użyciu języka Python

Utwórz bazę danych w instancji elastycznego serwera z użyciem tego przykładowego kodu

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

Zastąp następujące parametry swoimi danymi

  • subscription-id: Własny identyfikator subskrypcji.
  • nazwa-grupy zasobów: nazwij grupę zasobów, której chcesz użyć. Skrypt tworzy nową grupę zasobów, jeśli nie istnieje.
  • sever-name: nazwa wystąpienia elastycznego serwera bazy danych platformy Azure, które utworzyłeś wcześniej.
  • database-name: nazwa bazy danych, którą chcesz utworzyć.

Czyszczenie zasobów

Jeśli nie potrzebujesz już wystąpienia serwera elastycznego usługi Azure Database for PostgreSQL, możesz go usunąć wraz z powiązaną grupą zasobów za pomocą Portalu, zestawu SDK języka Python lub interfejsu wiersza polecenia platformy Azure.

Usuwanie wystąpienia przy użyciu zestawu SDK języka Python

Utwórz plik „delete_server.py”, aby usunąć utworzone wystąpienie serwera Azure Database for PostgreSQL.

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