Partilhar via


Monitorar e dimensionar uma única instância de servidor flexível do Banco de Dados do Azure para PostgreSQL usando a CLI do Azure

Este script de CLI de exemplo dimensiona a computação e o armazenamento para uma única instância de servidor flexível do Banco de Dados do Azure para PostgreSQL depois de consultar as métricas. A computação pode ser dimensionada para cima ou para baixo. O armazenamento só pode ser ampliado.

Importante

O armazenamento só pode ser aumentado verticalmente e não reduzido.

Se não tiver uma conta do Azure, crie uma conta gratuita antes de começar.

Pré-requisitos

Script de exemplo

Iniciar o Azure Cloud Shell

O Azure Cloud Shell é um shell interativo gratuito que pode utilizar para executar os passos neste artigo. Tem as ferramentas comuns do Azure pré-instaladas e configuradas para utilização com a sua conta.

Para abrir o Cloud Shell, basta selecionar Experimentar no canto superior direito de um bloco de código. Também pode iniciar o Cloud Shell num separador do browser separado ao aceder a https://shell.azure.com.

Quando o Cloud Shell abrir, verifique se o Bash está selecionado para o seu ambiente. As sessões subsequentes usarão a CLI do Azure em um ambiente Bash, selecione Copiar para copiar os blocos de código, cole-o no Cloud Shell e pressione Enter para executá-lo.

Iniciar sessão no Azure

O Cloud Shell é autenticado automaticamente na conta inicial com a qual entrou conectado. Use o script a seguir para entrar usando uma assinatura diferente, substituindo subscriptionId pela sua ID de assinatura do Azure.

Se não tiver uma conta do Azure, crie uma conta gratuita antes de começar.

subscription="subscriptionId" # Set Azure subscription ID here

az account set -s $subscription # ...or use 'az login'

Para obter mais informações, consulte definir assinatura ativa ou fazer login interativamente.

Executar o script

# Monitor and scale a single PostgreSQL server

# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
subscriptionId="$(az account show --query id -o tsv)"
location="East US"
resourceGroup="msdocs-postgresql-rg-$randomIdentifier"
tag="scale-postgresql-server"
server="msdocs-postgresql-server-$randomIdentifier"
sku="GP_Gen5_2"
login="azureuser"
password="Pa$$w0rD-$randomIdentifier"
scaleUpSku="GP_Gen5_4"
scaleDownSku="GP_Gen5_2"
storageSize="102400"

echo "Using resource group $resourceGroup with login: $login, password: $password..."

# Create a resource group
echo "Creating $resourceGroup in $location..."
az group create --name $resourceGroup --location "$location" --tags $tag

# Create a PostgreSQL server in the resource group
# Name of a server maps to DNS name and is thus required to be globally unique in Azure.
echo "Creating $server in $location..."
az postgres server create --name $server --resource-group $resourceGroup --location "$location" --admin-user $login --admin-password $password --sku-name $sku

# Monitor usage metrics - CPU
echo "Returning the CPU usage metrics for $server"
az monitor metrics list --resource "/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.DBforPostgresql/servers/$server" --metric cpu_percent --interval PT1M

# Monitor usage metrics - Storage
echo "Returning the storage usage metrics for $server"
az monitor metrics list --resource "/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.DBforPostgresql/servers/$server" --metric storage_used --interval PT1M

# Scale up the server by provisionining more vCores within the same tier
echo "Scaling up $server by changing the SKU to $scaleUpSku"
az postgres server update --resource-group $resourceGroup --name $server --sku-name $scaleUpSku

# Scale down the server by provisioning fewer vCores within the same tier
echo "Scaling down $server by changing the SKU to $scaleDownSku"
az postgres server update --resource-group $resourceGroup --name $server --sku-name $scaleDownSku

# Scale up the server to provision a storage size of 10GB
# Storage size cannot be reduced
echo "Scaling up the storage size for $server to $storageSize"
az postgres server update --resource-group $resourceGroup --name $server --storage-size $storageSize

Limpar a implementação

Use o comando a seguir para remover o grupo de recursos e todos os recursos associados a ele usando o comando az group delete - a menos que você tenha uma necessidade contínua desses recursos. Alguns desses recursos podem demorar um pouco para criar, bem como para excluir.

az group delete --name $resourceGroup

Referência de exemplo

Este script utiliza os comandos descritos na tabela seguinte:

Comando Notas
az group create (comando para criar um grupo no Azure CLI) Cria um grupo de recursos no qual todos os recursos são armazenados.
az postgres servidor criar Cria uma instância de servidor flexível do Banco de Dados do Azure para PostgreSQL que hospeda os bancos de dados.
atualização do servidor az postgres Atualiza as propriedades do Banco de Dados do Azure para instância de servidor flexível PostgreSQL.
Lista de métricas do AZ Monitor Lista o valor da métrica para os recursos.
Exclusão de grupo AZ Elimina um grupo de recursos, incluindo todos os recursos aninhados.