Guida introduttiva: Configurare la scalabilità automatica per le applicazioni nel piano dedicato e consumo di Azure Spring Apps Standard

Nota

I piani Basic, Standard ed Enterprise saranno deprecati a partire dalla metà di marzo 2025, con un periodo di ritiro di 3 anni. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere l'annuncio di ritiro di Azure Spring Apps.

Il piano Standard a consumo e dedicato sarà deprecato a partire dal 30 settembre 2024, con un arresto completo dopo sei mesi. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere Eseguire la migrazione del consumo di Azure Spring Apps Standard e del piano dedicato alle app Azure Container.

Questo articolo si applica a: ✔️ Utilizzo standard e dedicato (anteprima) ❌ Basic/Standard ❌ Enterprise

Questo articolo descrive come configurare le regole di scalabilità automatica per le applicazioni nell'uso standard di Azure Spring Apps e nel piano dedicato. Il piano usa un ambiente app Azure Container per ospitare le applicazioni Spring e offre la gestione e il supporto seguenti:

  • Gestisce il ridimensionamento orizzontale automatico tramite un set di regole di ridimensionamento dichiarative.
  • Supporta tutte le regole di ridimensionamento supportate da App Azure Container.

Per altre informazioni, vedere la documentazione di App contenitore di Azure.

Prerequisiti

Definizione del piano

Il ridimensionamento è definito dalla combinazione di limiti e regole.

  • I limiti sono il numero minimo e massimo di istanze consentite da Spring.

    Limite di scalabilità Valore predefinito Valore minimo Valore massimo
    Numero minimo di istanze per distribuzione 1 0 30
    Numero massimo di istanze per distribuzione 10 1 30

    Per impostazione predefinita, il numero minimo di istanze dell'applicazione Spring è impostato su 1 per assicurarsi che la distribuzione sia sempre in esecuzione. Se si vuole passare a zero, è possibile impostare il numero minimo di istanze su zero.

  • Le regole sono i criteri che la scalabilità automatica rispetta per aggiungere o rimuovere istanze. Le regole di scalabilità includono regole HTTP, TCP e Personalizzate, come descritto nella sezione Regole di scalabilità di Set scaling rules in Azure Container Apps (Regole di scalabilità in App Contenitore di Azure).

    Se si definiscono più regole di scalabilità, la scalabilità automatica inizia quando viene soddisfatta la prima condizione di qualsiasi regola.

  • L'intervallo di polling e il periodo di raffreddamento sono due intervalli di tempo che si verificano durante la scalabilità automatica.

    • L'intervallo di polling definisce l'intervallo di tempo tra ogni azione di polling dei dati in tempo reale, come definito dalle regole. L'intervallo di polling è impostato su 30 secondi per impostazione predefinita.
    • Il periodo di raffreddamento si applica solo quando si passa a zero, ad esempio per attendere cinque minuti dopo l'ultima volta che la scalabilità automatica ha controllato la coda dei messaggi ed era vuota.

Configurare le impostazioni di scalabilità automatica

È possibile configurare le impostazioni di scalabilità automatica per l'applicazione usando il portale di Azure o l'interfaccia della riga di comando di Azure.

Per definire le impostazioni e le regole di scalabilità automatica, seguire questa procedura.

  1. Accedere al portale di Azure.
  2. Selezionare App Spring di Azure in Servizi di Azure.
  3. Nella colonna Nome selezionare l'istanza di Azure Spring Apps che si vuole ridimensionare automaticamente.
  4. Nella pagina di panoramica per l'istanza di Azure Spring Apps selezionare App nel riquadro di spostamento.
  5. Selezionare l'applicazione che si vuole ridimensionare automaticamente.
  6. Nella pagina di panoramica per l'app selezionata selezionare Scale out nel riquadro di spostamento.
  7. Nella pagina Scalabilità orizzontale (anteprima) selezionare la distribuzione che si vuole ridimensionare automaticamente.
  8. Configurare i limiti dell'istanza della distribuzione.
  9. Selezionare Aggiungi per aggiungere le regole di scalabilità.

Screenshot della versione di anteprima portale di Azure che mostra la pagina Scale out per un'app in un'istanza di Azure Spring Apps.

Regole di ridimensionamento personalizzate

Per informazioni sulla definizione di regole personalizzate, vedere Scaler Keda. Le sezioni seguenti illustrano due esempi di impostazione delle regole di scalabilità in MySQL e Cron.

Configurare le regole di ridimensionamento automatico nel database MySQL

I comandi dell'interfaccia della riga di comando seguenti illustrano come ridimensionare automaticamente l'applicazione Spring in base a Keda MySQL Scaler. Creare prima di tutto un segreto per archiviare il stringa di connessione SQL. Questo segreto viene usato per l'autenticazione delle regole di scalabilità. Configurare quindi una regola che ridimensiona l'app in base al numero di righe di una tabella.

az spring app update \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-service-instance-name> \
    --name <app-name> \
    --secrets mysqlconnectionstring="<username>:<pwd>@tcp(<server name>:3306)/<database name>" 

az spring app scale \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-service-instance-name> \
    --name <app-name> \
    --scale-rule-type mysql \
    --scale-rule-name <your rule name> \
    --scale-rule-auth "connectionString=mysqlconnectionstring" \
    --scale-rule-metadata queryValue=4 query="SELECT count(*) FROM mytable" \
    --min-replicas 0 \
    --max-replicas 3

Creare una regola basata su Linux cron

I comandi seguenti illustrano come configurare una regola basata su Keda Cron Scaler. Le repliche vengono ridimensionate al numero desiderato durante l'intervallo di tempo cron.

az spring app scale \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-service-instance-name> \
    --name <app-name> \
    --scale-rule-type cron \
    --scale-rule-name testscalerule \
    --scale-rule-metadata timezone="Asia/Shanghai" \
                          start="10 * * * *" \
                          end="15 * * * *" \
                          desiredReplicas="3" \
    --min-replicas 0 \
    --max-replicas 3

Ridimensionamento degli eventi

È possibile trovare gli eventi di ridimensionamento dai log di sistema dell'app contenitore sottostante e filtrare EventSource usando KEDA, come illustrato nell'esempio seguente:

ContainerAppSystemLogs_CL 
| where ContainerAppName_s == 'YourAppName' and EventSource_s == 'KEDA'

Pulire le risorse

Assicurarsi di eliminare le risorse create in questo articolo quando non sono più necessarie. Per eliminare le risorse, eliminare semplicemente il gruppo di risorse che li contiene. È possibile eliminare il gruppo di risorse usando il portale di Azure. In alternativa, per eliminare il gruppo di risorse usando l'interfaccia della riga di comando di Azure, usare i comandi seguenti:

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

Passaggi successivi