Een server bewaken en schalen met behulp van Azure CLI in Azure Database for PostgreSQL flexibele server

Met dit CLI-voorbeeldscript wordt rekenkracht en opslag geschaald voor één Azure Database for PostgreSQL flexibele server na het uitvoeren van query's op de metrische gegevens. U kunt de rekenkracht omhoog of omlaag schalen. U kunt opslag alleen omhoog schalen.

Belangrijk

U kunt opslag alleen omhoog schalen, niet omlaag.

Als u geen Azure-account hebt, maak dan een gratis account aan voordat u begint.

Vereiste voorwaarden

Voorbeeldscript

Azure Cloud Shell starten

Azure Cloud Shell is een gratis interactieve shell waarmee u de stappen in dit artikel kunt uitvoeren. Veelgebruikte Azure-hulpprogramma's zijn vooraf geïnstalleerd en geconfigureerd voor gebruik met uw account.

Als u Cloud Shell wilt openen, selecteert u Proberen in de rechterbovenhoek van een codeblok. U kunt Cloud Shell ook openen in een afzonderlijk browsertabblad door naar https://shell.azure.com te gaan.

Wanneer Cloud Shell wordt geopend, controleert u of Bash is geselecteerd voor uw omgeving. Latere sessies zullen gebruikmaken van Azure CLI in een Bash-omgeving. Selecteer Copy om de codeblokken te kopiëren, plak ze in de Cloud Shell, en druk op Enter om ze uit te voeren.

Aanmelden bij Azure

Cloud Shell wordt automatisch geauthenticeerd met het oorspronkelijke account waarmee je bent aangemeld. Gebruik het volgende script om in te loggen met een ander abonnement. Vervang subscriptionId door je Azure-abonnement-ID.

Als u geen Azure-account hebt, maak dan een gratis account aan voordat u begint.

subscription="subscriptionId" # Set Azure subscription ID here

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

Zie Het actieve abonnement instellen of interactief aanmelden voor meer informatie.

Het script uitvoeren

# 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

Opschoning van de implementatie

Gebruik de volgende opdracht om de resourcegroep en alle bijbehorende resources te verwijderen met behulp van het az group delete-commando, tenzij u deze resources nog nodig heeft. Sommige van deze resources kunnen wat tijd vergen om te maken, maar ook om te verwijderen.

az group delete --name $resourceGroup

Voorbeeldreferentie

Dit script maakt gebruik van de opdrachten die in de volgende tabel worden weergegeven:

Opdracht Notes
az groep maken Hiermee maakt u een resourcegroep waarin alle resources worden opgeslagen.
az postgres server create - Gebruik deze opdracht om een nieuwe PostgreSQL-server te maken. Hiermee maakt u een Azure Database for PostgreSQL flexibele server die als host fungeert voor de databases.
az postgres server bijwerken Hiermee worden eigenschappen van de Azure Database for PostgreSQL flexibele server bijgewerkt.
az monitor metrics list Geeft de metrische waarde voor de resources weer.
az groep verwijderen Verwijdert een resourcegroep, inclusief alle onderliggende resources.