Freigeben über


Schnellstart: Einrichten der Autoskalierung für Anwendungen im Azure Spring Apps-Standardverbrauchs- und dedizierten Plan

Hinweis

Azure Spring Apps ist der neue Name für den Azure Spring Cloud-Dienst. Obwohl der Dienst umbenannt wurde, wird der alte Name noch an einigen Stellen verwendet, solange wir Ressourcen wie Screenshots, Videos und Diagramme aktualisieren.

Dieser Artikel gilt für: ✔️ Standardverbrauch und dediziert (Vorschau) ❌ Basic/Standard ❌ Enterprise

In diesem Artikel wird beschrieben, wie Sie Regeln für die Autoskalierung für Ihre Anwendungen im Azure Spring Apps-Standardverbrauchs- und dedizierten Plan einrichten. Der Plan verwendet eine Azure Container Apps-Umgebung zum Hosten Ihrer Spring-Anwendungen und bietet die folgenden Verwaltungsoptionen und Unterstützung:

  • Verwaltet die automatische horizontale Skalierung mithilfe einer Reihe deklarativer Skalierungsregeln.
  • Unterstützt alle Skalierungsregeln, die Azure Container Apps unterstützt.

Weitere Informationen hierzu finden Sie in der Dokumentation von Azure Container Apps.

Voraussetzungen

Skalierungsdefinition

Die Skalierung wird durch die Kombination von Grenzwerten und Regeln definiert.

  • Grenzwerte sind die minimale und maximale Anzahl von Instanzen, die Ihr Spring zulässt.

    Skalierungslimit Standardwert Mindestwert Höchstwert
    Mindestanzahl von Instanzen pro Bereitstellung 1 0 30
    Maximale Anzahl von Instanzen pro Bereitstellung 10 1 30

    Standardmäßig ist die Mindestanzahl der Instanzen Ihrer Spring-Anwendung auf 1 festgelegt, um sicherzustellen, dass Ihre Bereitstellung immer ausgeführt wird. Wenn Sie auf 0 (null) skalieren möchten, können Sie die Mindestanzahl von Instanzen auf 0 (null) festlegen.

  • Regeln sind die Kriterien, an die sich die automatische Skalierung hält, um Instanzen hinzuzufügen oder zu entfernen. Die Skalierungsregeln umfassen HTTP-, TCP- und benutzerdefinierte Regeln, wie im Abschnitt Skalierungsregeln unter Festlegen von Skalierungsregeln in Azure Container Apps beschrieben.

    Wenn Sie mehr als eine Skalierungsregel definieren, beginnt die automatische Skalierung, wenn die erste Bedingung irgendeiner Regel erfüllt ist.

  • Das Abrufintervall und der Abkühlzeitraum sind zwei Zeiträume, die während der automatischen Skalierung auftreten.

    • Das Abrufintervall definiert die Zeitspanne zwischen den einzelnen Abrufaktionen von Echtzeitdaten, wie in Ihren Regeln definiert. Das Abrufintervall ist standardmäßig auf 30 Sekunden festgelegt.
    • Der Abkühlzeitraum gilt nur, wenn die Skalierung auf 0 (null) skaliert wird, z. B. um fünf Minuten zu warten, nachdem die letzte automatische Skalierung die Nachrichtenwarteschlange überprüft hat und diese leer war.

Einstellungen für die Autoskalierung festlegen

Sie können Einstellungen für die Autoskalierung für Ihre Anwendung mithilfe des Azure-Portals oder Azure CLI einrichten.

Führen Sie die folgenden Schritte aus, um Einstellungen und Regeln für die Autoskalierung zu definieren.

  1. Melden Sie sich beim Azure-Portal an.
  2. Wählen Sie unter Azure-Dienste die Option Azure Spring Apps aus.
  3. Wählen Sie in der Spalte Name die Azure Spring Apps-Instanz aus, die automatisch skaliert werden soll.
  4. Wählen Sie auf der Übersichtsseite für Ihre Azure Spring Apps-Instanz im Navigationsbereich Apps aus.
  5. Wählen Sie die Anwendung aus, die automatisch skaliert werden soll.
  6. Wählen Sie auf der Übersichtsseite für die ausgewählte App im Navigationsbereich Horizontal hochskalieren aus.
  7. Wählen Sie auf der Seite Horizontal hochskalieren (Vorschau) die Bereitstellung aus, die automatisch skaliert werden soll.
  8. Richten Sie die Instanzgrenzwerte Ihrer Bereitstellung ein.
  9. Wählen Sie Hinzufügen aus, um Ihre Skalierungsregeln hinzuzufügen.

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

Benutzerdefinierte Skalierungsregeln

Informationen zum Definieren benutzerdefinierter Regeln finden Sie unter Keda-Skalierungsmodule. In den folgenden Abschnitten werden zwei Beispiele für das Festlegen von Skalierungsregeln für MySQL und Cron beschrieben.

Einrichten von Regeln für die automatische Skalierung für die MySQL-Datenbank

Die folgenden CLI-Befehle veranschaulichen, wie Sie Ihre Spring-Anwendung basierend auf dem Keda MySQL-Skalierungsmodul automatisch skalieren. Erstellen Sie zunächst ein Geheimnis, um Ihre SQL-Verbindungszeichenfolge zu speichern. Dieses Geheimnis wird für die Authentifizierung Ihrer Skalierungsregeln verwendet. Richten Sie dann eine Regel ein, die die Anwendung basierend auf der Zeilenanzahl einer Tabelle skaliert.

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

Erstellen einer Regel basierend auf Linux Cron

Die folgenden Befehle veranschaulichen, wie Sie eine Regel basierend auf dem Keda Cron-Skalierungsmodul einrichten. Die Replikate werden während des Cron-Zeitintervalls auf die gewünschte Zahl skaliert.

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

Skalieren von Ereignissen

Sie finden die Skalierungsereignisse in den Systemprotokollen Ihrer zugrunde liegenden Container-Anwendung und filtern die EventSource mithilfe von KEDA, wie im folgenden Beispiel gezeigt:

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

Bereinigen von Ressourcen

Vergessen Sie nicht, die in diesem Artikel erstellten Ressourcen zu löschen, wenn Sie sie nicht mehr benötigen. Um die Ressourcen zu löschen, löschen Sie einfach die Ressourcengruppe, die sie enthält. Sie können die Ressourcengruppe mithilfe des Microsoft Azure-Portal löschen. Wenn Sie die Ressourcengruppe stattdessen mithilfe der Azure CLI löschen möchten, verwenden Sie die folgenden Befehle:

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

Nächste Schritte