Supervisión y escalado de un solo servidor PostgreSQL mediante la CLI de AzureMonitor and scale a single PostgreSQL server using Azure CLI

Este script de la CLI de ejemplo escala el proceso y el almacenamiento de un servidor individual de Azure Database for PostgreSQL después de consultar las métricas.This sample CLI script scales compute and storage for a single Azure Database for PostgreSQL server after querying the metrics. La capacidad de procesamiento se puede ampliar o reducir.Compute can scale up or down. El almacenamiento solo se puede ampliar.Storage can only scale up.

Uso de Azure Cloud ShellUse Azure Cloud Shell

En Azure se hospeda Azure Cloud Shell, un entorno de shell interactivo que puede utilizar mediante el explorador.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Puede usar Bash o PowerShell con Cloud Shell para trabajar con los servicios de Azure.You can use either Bash or PowerShell with Cloud Shell to work with Azure services. Puede usar los comandos preinstalados de Cloud Shell para ejecutar el código de este artículo sin tener que instalar nada en su entorno local.You can use the Cloud Shell preinstalled commands to run the code in this article without having to install anything on your local environment.

Para iniciar Azure Cloud Shell:To start Azure Cloud Shell:

OpciónOption Ejemplo o vínculoExample/Link
Seleccione Probarlo en la esquina superior derecha de un bloque de código.Select Try It in the upper-right corner of a code block. Solo con seleccionar Probar no se copia automáticamente el código en Cloud Shell.Selecting Try It doesn't automatically copy the code to Cloud Shell. Ejemplo de Probarlo para Azure Cloud Shell
Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador.Go to https://shell.azure.com, or select the Launch Cloud Shell button to open Cloud Shell in your browser. Iniciar Cloud Shell en una nueva ventanaLaunch Cloud Shell in a new window
Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal.Select the Cloud Shell button on the menu bar at the upper right in the Azure portal. Botón Cloud Shell en Azure Portal

Para ejecutar el código de este artículo en Azure Cloud Shell:To run the code in this article in Azure Cloud Shell:

  1. Inicie Cloud Shell.Start Cloud Shell.

  2. Seleccione el botón Copiar de un bloque de código para copiar el código.Select the Copy button on a code block to copy the code.

  3. Pegue el código en la sesión de Cloud Shell; para ello, seleccione Ctrl+Shift+V en Windows y Linux, o bien seleccione Cmd+Shift+V en macOS.Paste the code into the Cloud Shell session by selecting Ctrl+Shift+V on Windows and Linux or by selecting Cmd+Shift+V on macOS.

  4. Seleccione Entrar para ejecutar el código.Select Enter to run the code.

Si decide ejecutar la CLI localmente, este artículo necesita la CLI de Azure versión 2.0 o posterior.If you choose to run the CLI locally, this article requires Azure CLI version 2.0 or later. Ejecute az --version para comprobar la versión.Check the version by running az --version. Consulte Instalación de la CLI de Azure para instalar o actualizar su versión de la CLI de Azure.See Install Azure CLI to install or upgrade your version of Azure CLI.

Script de ejemploSample script

Actualice el script con el identificador de su suscripción.Update the script with your subscription ID.

#!/bin/bash

# Set up variables
RESOURCE_GROUP="myresourcegroup"
SERVER_NAME="mydemoserver-$RANDOM"
PASSWORD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 12)
echo password $PASSWORD # returns the generated password
LOCATION="westus"
ADMIN_USER="myadmin"
SUBSCRIPTION_ID="" # enter your subscription ID

# Create a resource group
az group create \
    --name $RESOURCE_GROUP \
    --location $LOCATION

# Create a PostgreSQL server in the resource group
az postgres server create \
    --name $SERVER_NAME \
    --resource-group $RESOURCE_GROUP \
    --location $LOCATION \
    --admin-user $ADMIN_USER \
    --admin-password $PASSWORD \
    --sku-name GP_Gen5_2

# Monitor usage metrics - CPU
az monitor metrics list \
    --resource "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.DBforPostgreSQL/servers/$SERVER_NAME" \
    --metric cpu_percent \
    --interval PT1M

# Monitor usage metrics - Storage
az monitor metrics list \
    --resource "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.DBforPostgreSQL/servers/$SERVER_NAME" \
    --metric storage_used \
    --interval PT1M

# Scale up the server by provisionining more vCores within the same tier
az postgres server update \
    --resource-group $RESOURCE_GROUP \
    --name $SERVER_NAME \
    --sku-name GP_Gen5_4

# Scale down the server by provisioning fewer vCores within the same tier
az postgres server update \
    --resource-group $RESOURCE_GROUP \
    --name $SERVER_NAME \
    --sku-name GP_Gen5_2

# Scale up the server to provision a storage size of 7GB
# Storage size cannot be reduced
az postgres server update \
    --resource-group $RESOURCE_GROUP \
    --name $SERVER_NAME \
    --storage-size 7168

Limpieza de la implementaciónClean up deployment

Use el comando siguiente para quitar el grupo de recursos y todos los recursos asociados a él después de ejecutarse el script de ejemplo.Use the following command to remove the resource group and all resources associated with it after the script has been run.

#!/bin/bash
RESOURCE_GROUP = "" # enter your resource group name
az group delete --name $RESOURCE_GROUP

Explicación del scriptScript explanation

Este script usa los comandos que se describen en la tabla siguiente:This script uses the commands outlined in the following table:

ComandoCommand NotasNotes
az group createaz group create Crea un grupo de recursos en el que se almacenan todos los recursos.Creates a resource group in which all resources are stored.
az postgres server createaz postgres server create Crea un servidor de PostgreSQL que hospeda las bases de datos.Creates a PostgreSQL server that hosts the databases.
az postgres server updateaz postgres server update Actualiza las propiedades del servidor PostgreSQL.Updates properties of the PostgreSQL server.
az monitor metrics listaz monitor metrics list Especifica el valor de métrica de los recursos.List the metric value for the resources.
az group deleteaz group delete Elimina un grupo de recursos, incluidos todos los recursos anidados.Deletes a resource group including all nested resources.

Pasos siguientesNext steps