Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste início rápido, você aprenderá a usar o SDK do Python do Azure para interagir com uma instância de servidor flexível do Banco de Dados do Azure para PostgreSQL.
O Banco de Dados do Azure para PostgreSQL é um serviço gerenciado para execução, gerenciamento e dimensionamento de bancos de dados PostgreSQL altamente disponíveis na nuvem. Você pode usar o SDK do Python para provisionar uma instância de servidor flexível do Banco de Dados do Azure para PostgreSQL, vários servidores ou vários bancos de dados em um servidor.
É possível realizar as seguintes operações com esta biblioteca:
- Criando uma instância de servidor flexível do PostgreSQL
- Gerenciar bancos de dados
- Configurar regras de firewall
- Operações de dimensionamento
- Backup e Restauração
Este guia ajuda você a explorar as funcionalidades básicas desse SDK, incluindo a criação de uma instância de servidor flexível, a revisão do servidor criado, a criação de um banco de dados e a exclusão da instância.
Pré-requisitos
Uma conta com assinatura ativa
Uma conta do Azure com uma assinatura ativa Crie uma conta gratuitamente.
Instalar as bibliotecas
Instale as seguintes bibliotecas Python do Azure.
pip install azure-mgmt-resource
pip install azure-identity
pip install azure-mgmt-postgresqlflexibleservers
Execute o comando de login
Faça logon em sua conta usando azurecli para autenticar sua conta.
az login
Depois que esse comando for executado, selecione uma conta válida para entrar e, posteriormente, selecione a ID da assinatura na lista para fazer logon.
Criar o servidor
Crie um arquivo create_postgres_flexible_server.py com o seguinte código.
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()
Substitua os seguintes parâmetros com seus dados:
- subscription_id: sua própria ID de assinatura.
- resource_group: o nome do grupo de recursos que você deseja usar. Se ele não existir, o script criará um novo.
-
server_name: um nome exclusivo que identifica sua instância do servidor flexível do Banco de Dados do Azure para PostgreSQL. O nome de domínio
postgres.database.azure.comserá adicionado ao nome do servidor inserido. O nome do servidor deve ter no mínimo três e no máximo 63 caracteres, e só pode conter letras minúsculas, números e hifens. -
Location: a região do Azure em que você deseja criar sua instância do servidor flexível do Banco de Dados do Azure para PostgreSQL. Ele define a localização geográfica em que o servidor e seus dados residem. Escolha uma região próxima aos usuários para reduzir a latência. O local deve ser especificado no formato de nomes curtos da região do Azure, como
westus2,eastusounortheurope. - admin-username: o nome de usuário do administrador primário para o servidor. Você pode criar usuários adicionais depois que o servidor tiver sido criado.
- password: uma senha para o administrador primário para o servidor. Ele deve conter entre 8 e 128 caracteres. A senha deve conter caracteres das três seguintes categorias: letras maiúsculas, letras minúsculas, números (0 a 9) e caracteres não alfanuméricos (!, $, #, %, etc.).
Você também pode adicionar valores para outros parâmetros, como nome da vnet, nome da sub-rede, zona DNS privada e personalizar outros parâmetros, como tamanho de armazenamento, versão do mecanismo etc.
Observação
A classe DefaultAzureCredential tentará se autenticar usando vários métodos, como variáveis de ambiente, identidades gerenciadas ou a CLI do Azure.
Certifique-se de que você tenha um desses métodos configurado. Você pode encontrar mais informações sobre autenticação na Documentação do SDK do Azure.
A execução deste código iniciará o processo de criação da instância, que pode levar alguns minutos para ser concluído.
Examinar os recursos implantados
Você pode usar o SDK do Python, o portal do Azure, a CLI do Azure, o Azure PowerShell e várias outras ferramentas para validar a implantação e examinar os recursos implantados. Alguns exemplos são fornecidos abaixo.
Validar a implantação com o SDK do Python
Adicione a função check_server_created ao script existente para usar o atributo de servidores da instância PostgreSQLManagementClient para verificar se a instância de servidor flexível do Banco de Dados do Azure para PostgreSQL foi criada:
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}'.")
Chame-o com os parâmetros apropriados.
check_server_created(subscription_id, resource_group, server_name)
Observação
A função check_server_created retornará o estado do servidor assim que o servidor for provisionado. Mas pode levar alguns minutos para que o servidor fique totalmente disponível. Aguarde até que o servidor esteja pronto antes de se conectar a ele. Ele retornaria os parâmetros state, id, name, location etc. na resposta ao método postgres_client.servers.get.
Criar banco de dados usando o Python
Criar um banco de dados em sua instância de servidor flexível com este código de exemplo
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()
Substitua os seguintes parâmetros com seus dados
- subscription_id: sua própria ID de assinatura.
- resource_group: o nome do grupo de recursos que você deseja usar. O script criará um novo grupo de recursos se ele não existir.
- sever-name: o nome da instância do servidor flexível do banco de dados do Azure que você criou anteriormente
- database-name: o nome do banco de dados que você deseja criar.
Limpar os recursos
Se você não precisar mais da instância do servidor flexível do Banco de Dados do Azure para PostgreSQL, pode excluí-la, junto com grupo de recursos associado, usando o Portal, o SDK do Python ou a CLI do Azure.
Usar o SDK do Python para excluir a instância
Crie um arquivo "delete_server.py" para excluir a instância do Servidor de Bancos de Dados do Azure para PostgreSQL que foi criada.
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()