Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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:
- Tworzenie wystąpienia serwera elastycznego PostgreSQL
- Zarządzanie bazami danych
- Konfigurowanie reguł zapory
- Operacje skalowania
- 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.comdomeny 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,eastuslubnortheurope. - 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()