Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
In questa guida introduttiva si apprenderà come usare Azure Python SDK per interagire con un'istanza del server flessibile di Database di Azure per PostgreSQL.
Database di Azure per PostgreSQL è un servizio gestito per l'esecuzione, la gestione e il ridimensionamento di database PostgreSQL a disponibilità elevata nel cloud. È possibile usare l'SDK Python per effettuare il provisioning di un'istanza di server flessibile del Database di Azure per PostgreSQL, di più server, o di più database su un server.
È possibile eseguire le operazioni seguenti con questa libreria:
- Creare un'istanza di server PostgreSQL flessibile
- Gestire i database
- Configurare le regole del firewall
- Eseguire operazioni di ridimensionamento
- Backup e ripristino
Questa guida illustra le funzionalità di base di questo SDK, inclusa la creazione di un'istanza del server flessibile, la revisione del server creato, la creazione di un database e l'eliminazione dell'istanza.
Prerequisiti
Account con sottoscrizione attiva
Un account Azure con una sottoscrizione attiva. Creane uno gratis.
Installare le librerie
Installare le seguenti librerie Python di Azure.
pip install azure-mgmt-resource
pip install azure-identity
pip install azure-mgmt-postgresqlflexibleservers
Eseguire il comando di accesso
Accedere al proprio account usando azurecli per autenticare l'account.
az login
Dopo l'esecuzione di questo comando, selezionare un account valido per accedere e quindi selezionare l'ID sottoscrizione dall'elenco per accedere.
Creare il server
Creare un file create_postgres_flexible_server.py e includere il codice seguente.
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()
Sostituire i parametri seguenti con dati personalizzati:
- subscription-id: il tuo ID sottoscrizione.
- resource-group: selezionare il gruppo di risorse che si vuole usare. Se non esiste, lo script ne crea uno nuovo.
-
server-name: nome univoco che identifica l'istanza del server flessibile Database di Azure per PostgreSQL. Il nome di dominio
postgres.database.azure.comviene aggiunto al nome del server specificato. Il nome del server deve contenere almeno tre caratteri e al massimo 63 caratteri e può contenere solo lettere minuscole, numeri e trattini. -
Località: area di Azure in cui si vuole creare l'istanza del server flessibile Database di Azure per PostgreSQL. Definisce la posizione geografica in cui si trovano il server e i relativi dati. Scegliere un'area vicina agli utenti per ridurre la latenza. Il percorso deve essere specificato nel formato dei nomi brevi dell'area di Azure, ad esempio
westus2,eastusonortheurope. - admin-username: nome utente amministratore primario per il server. Dopo aver creato il server, è possibile creare altri utenti.
- password: password per l'amministratore principale per il server. Deve contenere tra 8 e 128 caratteri. La password deve contenere caratteri di tre delle categorie seguenti: lettere maiuscole, lettere minuscole, numeri (da 0 a 9) e caratteri non alfanumerici (!, $, #, % e così via).
È anche possibile aggiungere valori per altri parametri, ad esempio vnet-name, subnet-name, private-DNS-zone e personalizzare altri parametri, ad esempio dimensioni di archiviazione, versione del motore e così via.
Annotazioni
La classe DefaultAzureCredential tenta di eseguire l'autenticazione usando vari metodi, ad esempio variabili di ambiente, identità gestite o l'interfaccia della riga di comando di Azure.
Assicurarsi di avere uno di questi metodi configurati. Altre informazioni sull'autenticazione sono disponibili nella documentazione di Azure SDK.
L'esecuzione di questo codice avvia il processo di creazione dell'istanza, che potrebbe richiedere alcuni minuti.
Esaminare le risorse distribuite
È possibile usare Python SDK, portale di Azure, interfaccia della riga di comando di Azure, Azure PowerShell e vari altri strumenti per convalidare la distribuzione ed esaminare le risorse distribuite. Di seguito sono disponibili alcuni esempi.
Convalidare la distribuzione con Python SDK
Aggiungere la funzione check_server_created allo script esistente per usare l'attributo servers dell'istanza postgreSQLManagementClient per verificare se è stata creata l'istanza del server flessibile Database di Azure per 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}'.")
Chiamarlo con i parametri appropriati.
check_server_created(subscription_id, resource_group, server_name)
Annotazioni
La funzione check_server_created restituisce lo stato del server non appena viene effettuato il provisioning del server. Tuttavia, il server potrebbe richiedere alcuni minuti per diventare completamente disponibile. Assicurarsi di attendere che il server sia pronto prima di connettersi. Restituisce lo stato, l'ID, il nome, la posizione e altri parametri in risposta al metodo postgres_client.servers.get.
Creare un database con Python
Creare un database nell'istanza del server flessibile con questo codice di esempio
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()
Sostituire i parametri seguenti con i dati
- subscription-id: il tuo ID sottoscrizione.
- resource-group-name: selezionare il gruppo di risorse che si vuole usare. Lo script crea un nuovo gruppo di risorse, se non esiste.
- sever-name: nome dell'istanza del server flessibile del database di Azure creata in precedenza
- database-name: il nome del database che si vuole creare.
Pulire le risorse
Se non è più necessaria l'istanza del server flessibile Database di Azure per PostgreSQL, è possibile eliminarla e il gruppo di risorse associato usando il portale, Python SDK o l'interfaccia della riga di comando di Azure.
Usare Python SDK per eliminare l'istanza
Creare un file "delete_server.py" per eliminare l'istanza del server Database di Azure per PostgreSQL creata.
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()