Udostępnij przez


Monitorowanie i skalowanie pojedynczego wystąpienia serwera elastycznego usługi Azure Database for PostgreSQL przy użyciu interfejsu wiersza polecenia platformy Azure

Ten przykładowy skrypt interfejsu wiersza polecenia skaluje zasoby obliczeniowe i magazyn dla pojedynczego wystąpienia serwera elastycznego usługi Azure Database for PostgreSQL po wykonaniu zapytań dotyczących metryk. Obliczenia mogą być skalowane w górę lub w dół. Magazyn może być skalowany tylko w górę.

Ważne

Magazyn można skalować tylko w górę, nie w dół.

Jeśli nie masz jeszcze konta platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Wymagania wstępne

Przykładowy skrypt

Uruchamianie usługi Azure Cloud Shell

Usługa Azure Cloud Shell to bezpłatna interaktywna powłoka, której możesz używać do wykonywania kroków opisanych w tym artykule. Ma zainstalowane i skonfigurowane popularne narzędzia Azure do użycia z Twoim kontem.

Aby otworzyć Cloud Shell, należy po prostu wybrać Try it w prawym górnym rogu bloku kodu. Możesz również uruchomić Cloud Shell w osobnej karcie przeglądarki, przechodząc do https://shell.azure.com.

Po otwarciu usługi Cloud Shell sprawdź, czy wybrano Bash dla twojego środowiska. Kolejne sesje będą używać Azure CLI w środowisku Bash. Wybierz opcję Kopiuj, aby skopiować bloki kodu, wklej je do Cloud Shell i naciśnij Enter, aby je uruchomić.

Zaloguj się do Azure

Usługa Cloud Shell jest automatycznie uwierzytelniana na początkowym koncie zalogowanym. Użyj poniższego skryptu, aby zalogować się przy użyciu innej subskrypcji, zastępując subscriptionId swoim identyfikatorem subskrypcji Azure.

Jeśli nie masz jeszcze konta platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

subscription="subscriptionId" # Set Azure subscription ID here

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

Aby uzyskać więcej informacji, zobacz ustawianie aktywnej subskrypcji lub logowanie interakcyjne.

Uruchamianie skryptu

# 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

Dokończenie wdrożenia

Aby usunąć grupę zasobów i wszystkie zasoby z nią związane, użyj następującego polecenia az group delete - chyba że nadal potrzebujesz tych zasobów. Niektóre z tych zasobów mogą wymagać trochę czasu na stworzenie, a także usunięcie.

az group delete --name $resourceGroup

Przykładowa referencja

Ten skrypt używa poleceń opisanych w poniższej tabeli:

Polecenie Notatki
Polecenie az group create służy do utworzenia grupy w Azure. Tworzy grupę zasobów, w której są przechowywane wszystkie zasoby.
az postgres server create Tworzy wystąpienie serwera elastycznego usługi Azure Database for PostgreSQL, które hostuje bazy danych.
az postgres aktualizacja serwera Aktualizuje właściwości wystąpienia serwera elastycznego usługi Azure Database for PostgreSQL.
az monitor metrics list Wyświetla listę wartości metryki dla zasobów.
az group delete - usuwa grupę zasobów w Azure Usuwa grupę zasobów, w tym wszystkie zagnieżdżone zasoby.