Dela via


Snabbstart: Konfigurera autoskalning för program i Azure Spring Apps Standard-förbrukning och dedikerad plan

Kommentar

Basic-, Standard- och Enterprise-planerna kommer att vara inaktuella från och med mitten av mars 2025, med en 3-årig pensionsperiod. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i meddelandet om azure Spring Apps-pensionering.

Standardförbrukningen och den dedikerade planen kommer att vara inaktuell från och med den 30 september 2024, med en fullständig avstängning efter sex månader. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i Migrera Azure Spring Apps Standard-förbrukning och dedikerad plan till Azure Container Apps.

Den här artikeln gäller för:✅ Standardförbrukning och dedikerad (förhandsversion) ❎ Basic/Standard ❎ Enterprise

Den här artikeln beskriver hur du konfigurerar autoskalningsregler för dina program i Azure Spring Apps Standard-förbrukning och dedikerad plan. Planen använder en Azure Container Apps-miljö som värd för dina Spring-program och tillhandahåller följande hantering och support:

  • Hanterar automatisk horisontell skalning via en uppsättning deklarativa skalningsregler.
  • Stöder alla skalningsregler som Stöds av Azure Container Apps.

Mer information finns i Dokumentation om Azure Container Apps.

Förutsättningar

Skalningsdefinition

Skalning definieras av kombinationen av gränser och regler.

  • Gränserna är det minsta och högsta antalet instanser som din Spring tillåter.

    Skalningsgräns Standardvärde Minvärde Maxvärde
    Minsta antal instanser per distribution 1 0 30
    Maximalt antal instanser per distribution 10 1 30

    Som standard är det minsta instansantalet för ditt Spring-program inställt på 1 för att säkerställa att distributionen alltid körs. Om du vill skala in till noll kan du ange det minsta antalet instanser till noll.

  • Regler är de villkor som autoskalningen följer för att lägga till eller ta bort instanser. Skalningsreglerna innehåller HTTP-, TCP- och anpassade regler enligt beskrivningen i avsnittet Skalningsregler i Ange skalningsregler i Azure Container Apps.

    Om du definierar mer än en skalningsregel börjar autoskalningen när det första villkoret för en regel uppfylls.

  • Avsökningsintervallet och nedkylningsperioden är två tidsperioder som inträffar under autoskalning.

    • Avsökningsintervallet definierar tidsintervallet mellan varje avsökningsåtgärd för realtidsdata enligt definitionen i dina regler. Avsökningsintervallet är inställt på 30 sekunder som standard.
    • Nedkylningsperioden gäller endast vid skalning till noll, till exempel för att vänta fem minuter efter att den senaste gången automatisk skalning kontrollerade meddelandekön och den var tom.

Konfigurera autoskalningsinställningar

Du kan konfigurera autoskalningsinställningar för ditt program med hjälp av Azure Portal eller Azure CLI.

Använd följande steg för att definiera inställningar och regler för autoskalning.

  1. Logga in på Azure-portalen.
  2. Välj Azure Spring Apps under Azure-tjänster.
  3. I kolumnen Namn väljer du den Azure Spring Apps-instans som du vill skala automatiskt.
  4. På översiktssidan för din Azure Spring Apps-instans väljer du Appar i navigeringsfönstret.
  5. Välj det program som du vill skala automatiskt.
  6. På översiktssidan för den valda appen väljer du Skala ut i navigeringsfönstret.
  7. På sidan Skala ut (förhandsversion) väljer du den distribution som du vill skala automatiskt.
  8. Konfigurera instansgränserna för distributionen.
  9. Välj Lägg till för att lägga till dina skalningsregler.

Skärmbild av Azure Portal förhandsversion som visar sidan Skala ut för en app i en Azure Spring Apps-instans.

Anpassade skalningsregler

Information om hur du definierar anpassade regler finns i Keda-skalare. Följande avsnitt visar två exempel på hur du ställer in skalningsregler på MySQL och Cron.

Konfigurera regler för automatisk skalning i MySQL-databasen

Följande CLI-kommandon visar hur du autoskalar ditt Spring-program baserat på Keda MySQL Scaler. Skapa först en hemlighet för att lagra din SQL-anslutningssträng. Den här hemligheten används för din skalningsregelautentisering. Konfigurera sedan en regel som skalar appen baserat på antalet rader i en tabell.

Kommentar

Microsoft rekommenderar att du använder det säkraste tillgängliga autentiseringsflödet. Det autentiseringsflöde som beskrivs i den här proceduren, till exempel för databaser, cacheminnen, meddelanden eller AI-tjänster, kräver en mycket hög grad av förtroende för programmet och medför risker som inte finns i andra flöden. Använd endast det här flödet när säkrare alternativ, till exempel hanterade identiteter för lösenordslösa eller nyckellösa anslutningar, inte är genomförbara. För lokala datoråtgärder föredrar du användaridentiteter för lösenordslösa eller nyckellösa anslutningar.

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

Skapa en regel baserad på Linux Cron

Följande kommandon visar hur du konfigurerar en regel baserat på Keda Cron Scaler. Replikerna skalas till önskat tal under cron-tidsintervallet.

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

Skalningshändelser

Du hittar skalningshändelserna från systemloggarna i din underliggande containerapp och filtrerar EventSource med hjälp KEDAav , som du ser i följande exempel:

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

Rensa resurser

Se till att ta bort de resurser som du skapade i den här artikeln när du inte längre behöver dem. Ta bort resurserna genom att ta bort den resursgrupp som innehåller dem. Du kan ta bort resursgruppen med hjälp av Azure Portal. Om du vill ta bort resursgruppen med hjälp av Azure CLI kan du också använda följande kommandon:

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

Nästa steg