Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. 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 executar, gerenciar e dimensionar bancos de dados PostgreSQL altamente disponíveis na nuvem. Você pode usar o SDK do Python para provisionar um Banco de Dados do Azure para instância de servidor flexível do PostgreSQL, vários servidores ou vários bancos de dados em um servidor.
Você pode executar as seguintes operações com esta biblioteca:
- Criando uma instância de servidor flexível do PostgreSQL
- Gerenciando bancos de dados
- Configurar as Regras de Firewall
- Operações de Escalonamento
- 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
Conta com subscrição ativa
Uma conta do Azure com uma subscrição ativa Crie uma 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 login
Inicie sessão na sua conta utilizando azurecli para autenticar a sua conta.
az login
Depois que esse comando for executado, selecione uma conta válida para entrar e, posteriormente, selecione o ID da assinatura na lista para fazer login.
Criar o servidor
Crie um create_postgres_flexible_server.py arquivo e inclua o código a seguir.
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 pelos seus dados:
- subscription-id: o seu próprio ID de subscrição.
- resource-group: nomeie o grupo de recursos que você deseja usar. Se não existir, o script cria um novo.
-
server-name: um nome exclusivo que identifica seu Banco de Dados do Azure para instância de servidor flexível do PostgreSQL. O nome
postgres.database.azure.comde domínio é anexado ao nome do servidor fornecido. O nome do servidor deve ter pelo menos três caracteres e no máximo 63 caracteres e só pode conter letras minúsculas, números e hífenes. -
Local: a região do Azure onde você deseja criar seu Banco de Dados do Azure para instância de servidor flexível do PostgreSQL. Ele define a localização geográfica onde seu servidor e seus dados residem. Escolha uma região próxima aos seus usuários para latência reduzida. 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 principal do servidor. Depois que o servidor tiver sido criado, você poderá criar usuários adicionais.
- password: Uma senha para o administrador principal do servidor. Tem de conter entre 8 e 128 carateres. Sua senha deve conter caracteres de três categorias: letras maiúsculas em inglês, letras minúsculas em inglês, números (0 a 9) e caracteres não alfanuméricos (!, $, #, %, etc.).
Você também pode adicionar valores para outros parâmetros, como vnet-name, subnet-name, private-DNS-zone, e personalizar outros parâmetros, como tamanho de armazenamento, versão do mecanismo, etc.
Nota
A classe DefaultAzureCredential tenta autenticar usando vários métodos, como variáveis de ambiente, identidades gerenciadas ou a CLI do Azure.
Certifique-se de que tem um destes métodos configurado. Você pode encontrar mais informações sobre autenticação na documentação do SDK do Azure.
A execução desse código inicia o processo de criação da instância, que pode levar alguns minutos para ser concluído.
Analisar os recursos implementados
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 revisar os recursos implantados. Apresentam-se seguidamente alguns exemplos.
Validar a implementação com o Python SDK
Adicione a função check_server_created ao seu script existente para usar o atributo servers da instância do PostgreSQLManagementClient para verificar se a instância de servidor flexível do Azure Database 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)
Nota
A check_server_created função retorna o estado do servidor assim que o servidor é provisionado. No entanto, o servidor pode levar alguns minutos para ficar totalmente disponível. Certifique-se de esperar que o servidor esteja pronto antes de se conectar a ele. Ele retornaria o estado, ID, nome, local e outros parâmetros em resposta ao método postgres_client.servers.get.
Criar banco de dados usando Python
Crie 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 pelos seus dados
- subscription-id: o seu próprio ID de subscrição.
- resource-group-name: nomeie o grupo de recursos que você deseja usar. O script cria um novo grupo de recursos se ele não existir.
- sever-name: o nome da instância de servidor flexível do banco de dados do Azure que você criou antes
- database-name: o nome do banco de dados que você deseja criar.
Limpar recursos
Se você não precisar mais do Banco de Dados do Azure para instância de servidor flexível do PostgreSQL, poderá excluí-lo e o grupo de recursos associado usando o Portal, o SDK do Python ou a CLI do Azure.
Use o SDK do Python para excluir a instância
Crie um arquivo 'delete_server.py' para excluir os Bancos de Dados do Azure para a instância do PostgreSQL Server 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()