Monitorizar e dimensionar um único servidor PostgreSQL com a CLI do Azure

APLICA-SE A: Base de Dados do Azure para PostgreSQL - Base de Dados do Azure para PostgreSQL de servidor único - Servidor Flexível

Esta amostra de script CLI dimensiona o cálculo e armazenamento para um único servidor Base de Dados do Azure para PostgreSQL depois de consultar as métricas. A computação pode escalar para cima ou para baixo. O armazenamento só pode aumentar.

Importante

O armazenamento só pode ser aumentado, não para baixo.

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

Pré-requisitos

Você pode usar o Azure Cloud Shell ou um Azure CLI local.

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 Experimente 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 Cloud Shell abrir, verifique se a Bash está selecionada para o seu ambiente. As sessões subsequentes utilizarão o CLI Azure num ambiente bash, seleciona a Cópia para copiar os blocos de código, colá-lo no Cloud Shell e pressionar Enter para executá-lo.

Iniciar sessão no Azure

Cloud Shell é automaticamente autenticado na conta inicial com a qual se inscreve. Utilize o seguinte script para iniciar sing usando uma subscrição diferente, substituindo <Subscription ID> pelo seu ID de subscrição Azure. Se não tiver uma subscrição do Azure, crie uma conta Azure gratuita antes de começar.

subscription="<subscriptionId>" # add subscription here

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

Para obter mais informações, consulte a subscrição ativa definida ou faça 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

Utilize o seguinte comando para remover o grupo de recursos e todos os recursos que lhe estão associados utilizando o comando de eliminação do grupo AZ - a menos que tenha uma necessidade permanente para estes recursos. Alguns destes recursos podem demorar algum tempo a criar, bem como a eliminar.

az group delete --name $resourceGroup

Referência da amostra

Este script utiliza os comandos descritos na tabela seguinte:

Comando Notas
az group create Cria um grupo de recursos no qual todos os recursos são armazenados.
az postgres server create Cria um servidor PostgreSQL que aloja as bases de dados.
az postgres servidor atualização Atualizações propriedades do servidor PostgreSQL.
az monitor metrics list Liste o valor métrico dos recursos.
az group delete Elimina um grupo de recursos, incluindo todos os recursos aninhados.

Passos seguintes