Quickstart: Automatische schaalaanpassing instellen voor toepassingen in het Azure Spring Apps Standard-verbruik en toegewezen abonnement

Notitie

Azure Spring Apps is de nieuwe naam voor de Azure Spring Cloud-service. Hoewel de service een nieuwe naam heeft, ziet u de oude naam op sommige plaatsen terwijl we werken aan het bijwerken van assets, zoals schermopnamen, video's en diagrammen.

Dit artikel is van toepassing op: ✔️ Standaardverbruik en toegewezen (preview) ❌ Basic/Standard ❌ Enterprise

In dit artikel wordt beschreven hoe u regels voor automatische schaalaanpassing instelt voor uw toepassingen in azure Spring Apps Standard-verbruik en toegewezen abonnement. Het plan maakt gebruik van een Azure Container Apps-omgeving om uw Spring-toepassingen te hosten en biedt het volgende beheer en ondersteuning:

  • Hiermee beheert u automatisch horizontaal schalen via een set declaratieve schaalregels.
  • Ondersteunt alle schaalregels die door Azure Container Apps worden ondersteund.

Zie de documentatie voor Azure Container Apps voor meer informatie.

Vereisten

Schaaldefinitie

Schalen wordt gedefinieerd door de combinatie van limieten en regels.

  • Limieten zijn het minimum- en maximum aantal exemplaren dat door uw Spring is toegestaan.

    Schaallimiet Default value Minimumwaarde Maximumwaarde
    Minimum aantal exemplaren per implementatie 1 0 30
    Maximum aantal exemplaren per implementatie 10 1 30

    Standaard is het minimale aantal exemplaren van uw Spring-toepassing ingesteld op 1 om ervoor te zorgen dat uw implementatie altijd wordt uitgevoerd. Als u wilt inschalen naar nul, kunt u het minimumaantal exemplaren instellen op nul.

  • Regels zijn de criteria waaraan de automatische schaalaanpassing zich houdt om exemplaren toe te voegen of te verwijderen. De schaalregels omvatten HTTP-, TCP- en aangepaste regels, zoals beschreven in de sectie Schaalregels van Regels instellen in Azure Container Apps.

    Als u meer dan één schaalregel definieert, begint de automatische schaalaanpassing wanneer aan de eerste voorwaarde van een regel wordt voldaan.

  • Het polling-interval en de afkoelperiode zijn twee tijdsperioden die optreden tijdens automatisch schalen.

    • Het polling-interval definieert de tijdsduur tussen elke pollingactie van realtimegegevens, zoals gedefinieerd door uw regels. Het polling-interval is standaard ingesteld op 30 seconden.
    • De afkoelperiode is alleen van toepassing wanneer schalen naar nul wordt uitgevoerd, bijvoorbeeld om vijf minuten te wachten na de laatste keer dat automatisch schalen de berichtenwachtrij heeft gecontroleerd en deze leeg was.

Instellingen voor automatische schaalaanpassing instellen

U kunt instellingen voor automatische schaalaanpassing voor uw toepassing instellen met behulp van Azure Portal of Azure CLI.

Gebruik de volgende stappen om instellingen en regels voor automatisch schalen te definiëren.

  1. Meld u aan bij de Azure-portal.
  2. Selecteer Azure Spring Apps onder Azure-services.
  3. Selecteer in de kolom Naam het Azure Spring Apps-exemplaar dat u automatisch wilt schalen.
  4. Selecteer apps in het navigatiedeelvenster op de overzichtspagina voor uw Azure Spring Apps-exemplaar.
  5. Selecteer de toepassing die u automatisch wilt schalen.
  6. Selecteer Op de overzichtspagina voor de geselecteerde app de optie Uitschalen in het navigatiedeelvenster.
  7. Selecteer op de pagina Uitschalen (preview) de implementatie die u automatisch wilt schalen.
  8. Stel de exemplaarlimieten van uw implementatie in.
  9. Selecteer Toevoegen om uw schaalregels toe te voegen.

Screenshot of the Azure portal preview version showing the Scale out page for an app in an Azure Spring Apps instance.

Aangepaste schaalregels

Zie Keda-schaalders voor meer informatie over het definiëren van aangepaste regels. In de volgende secties ziet u twee voorbeelden van het instellen van schaalregels op MySQL en Cron.

Regels voor automatisch schalen instellen in MySQL-database

De volgende CLI-opdrachten laten zien hoe u uw Spring-toepassing automatisch kunt schalen op basis van Keda MySQL Scaler. Maak eerst een geheim om uw SQL-verbindingsreeks op te slaan. Dit geheim wordt gebruikt voor de verificatie van de schaalregel. Stel vervolgens een regel in waarmee de app wordt geschaald op basis van het aantal rijen van een tabel.

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

Een regel maken op basis van Linux Cron

De volgende opdrachten laten zien hoe u een regel instelt op basis van Keda Cron Scaler. De replica's worden geschaald naar het gewenste getal tijdens het cron-tijdsinterval.

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

Gebeurtenissen schalen

U vindt de schaalbewerkingen uit de systeemlogboeken van uw onderliggende container-app en filtert de EventSource met behulp van KEDA, zoals wordt weergegeven in het volgende voorbeeld:

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

Resources opschonen

Verwijder de resources die u in dit artikel hebt gemaakt wanneer u ze niet meer nodig hebt. Als u de resources wilt verwijderen, verwijdert u gewoon de resourcegroep die deze bevat. U kunt de resourcegroep verwijderen met behulp van Azure Portal. Als u de resourcegroep wilt verwijderen met behulp van Azure CLI, gebruikt u de volgende opdrachten:

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

Volgende stappen