Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este inicio rápido, aprenderá a usar el SDK de Python de Azure para interactuar con una instancia de servidor flexible de Azure Database for PostgreSQL.
El servidor flexible de Azure Database for PostgreSQL es un servicio administrado para ejecutar, administrar y escalar bases de datos PostgreSQL de alta disponibilidad en la nube. Puede usar el SDK de Python para aprovisionar una instancia de servidor flexible de Azure Database for PostgreSQL, varios servidores o varias bases de datos en un servidor.
Puede realizar las siguientes operaciones con esta biblioteca:
- Creación de un servidor flexible de PostgreSQL
- Administrar bases de datos
- Configuración de reglas de firewall
- Operaciones de escalado
- Copia de seguridad y restauración
Esta guía le ayuda a explorar las funcionalidades básicas de este SDK, incluida la creación de una instancia de servidor flexible, la revisión del servidor creado, la creación de una base de datos y la eliminación de la instancia.
Requisitos previos
Cuenta con suscripción activa
Una cuenta de Azure con una suscripción activa: Crear una gratuita
Instalación de las bibliotecas
Instale las siguientes bibliotecas de Azure Python.
pip install azure-mgmt-resource
pip install azure-identity
pip install azure-mgmt-postgresqlflexibleservers
Ejecute el comando de inicio de sesión
Inicie sesión en su cuenta con azurecli
para autenticar su cuenta.
az login
Una vez ejecutado este comando, seleccione una cuenta válida para iniciar sesión y, después, seleccione el identificador de suscripción de la lista para iniciar sesión.
Creación del servidor
Cree un archivo create_postgres_flexible_server.py
e incluya el código siguiente.
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()
Reemplace los parámetros siguientes por sus datos:
- subscription_id: su Id. de suscripción propio.
- resource-group: asigne al grupo de recursos el nombre que desea usar. Si no existe, el script crea uno nuevo.
-
server_name: un nombre único que identifica la instancia de servidor flexible de Azure Database for PostgreSQL. El nombre de dominio
postgres.database.azure.com
se anexa al nombre del servidor que proporcionó. El nombre del servidor debe tener al menos 3 caracteres y, como máximo, 63 caracteres, y solo puede contener letras minúsculas, números y guiones. -
Ubicación: la región de Azure donde desea crear la instancia de servidor flexible de Azure Database for PostgreSQL. Define la ubicación geográfica donde residen el servidor y sus datos. Elija una región cercana a los usuarios para una latencia reducida. La ubicación debe especificarse en el formato de nombres cortos de la región de Azure, como
westus2
,eastus
onortheurope
. - admin-username: nombre de usuario del administrador principal para el servidor. Una vez creado el servidor, puede crear usuarios adicionales.
- password: una contraseña para el administrador principal del servidor. Debe tener entre 8 y 128 caracteres. La contraseña debe contener caracteres de tres de las categorías: letras en mayúsculas del alfabeto inglés, letras en minúscula del alfabeto inglés, números (de cero a nueve) y caracteres no alfanuméricos (!, $, #, %, etc.).
También puede agregar valores para otros parámetros, como vnet-name, subnet-name, private-DNS-zone y personalizar otros parámetros, como el tamaño de almacenamiento, la versión del motor, etc.
Nota:
La clase DefaultAzureCredential intenta autenticarse mediante varios métodos, como variables de entorno, identidades administradas o la CLI de Azure.
Asegúrese de que tiene uno de estos métodos configurados. Puede encontrar más información sobre la autenticación en la documentación del SDK de Azure.
La ejecución de este código inicia el proceso de creación de la instancia, que puede tardar unos minutos en completarse.
Revisión de los recursos implementados
Puede usar el SDK de Python, Azure Portal, la CLI de Azure, Azure PowerShell y otras herramientas para validar la implementación y revisar los recursos implementados. A continuación se proporcionan algunos ejemplos.
Validación de la implementación con el SDK de Python
Agregue la función check_server_created
al script existente para usar el atributo servers de la instancia de PostgreSQLManagementClient para comprobar si se creó la instancia de servidor flexible de 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}'.")
Llámelo con los parámetros adecuados.
check_server_created(subscription_id, resource_group, server_name)
Nota:
La función check_server_created
devuelve el estado del servidor en cuanto se aprovisione el servidor. Sin embargo, el servidor puede tardar unos minutos en estar totalmente disponible. Asegúrese de esperar a que el servidor esté listo antes de conectarse a él. Devolvería el estado, el identificador, el nombre, la ubicación y otros parámetros en respuesta al método postgres_client.servers.get.
Creación de una base de datos mediante Python
Creación de una base de datos en el servidor flexible con este código de ejemplo
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()
Reemplace los parámetros siguientes por sus datos
- subscription_id: su Id. de suscripción propio.
- resource-group-name: asigne al grupo de recursos el nombre que desea usar. El script crea un nuevo grupo de recursos si no existe.
- sever_name: el nombre de la instancia de servidor flexible de base de datos de Azure que creó antes
- database-name: el nombre de la base de datos que desea crear.
Limpieza de recursos
Si ya no necesita la instancia de servidor flexible de Azure Database for PostgreSQL, puede eliminarla y el grupo de recursos asociado mediante el Portal, el SDK de Python o la CLI de Azure.
Uso del SDK de Python para eliminar la instancia
Cree un archivo "delete_server.py" para eliminar la instancia de Azure Databases for PostgreSQL Server que se creó.
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()