Schnellstart: Einrichten der Autoskalierung für Anwendungen im Azure Spring Apps-Standardverbrauchs- und dedizierten Plan
Hinweis
Die Pläne Basic, Standard und Enterprise gelten ab Mitte März 2025 als veraltet und werden über einen Zeitraum von drei Jahren eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie in der Ankündigung zur Einstellung von Azure Spring Apps.
Der Plan Standardverbrauch und dediziert gilt ab dem 30. September 2024 als veraltet und wird nach sechs Monaten vollständig eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie unter Migrieren des Plans „Standardverbrauch und dediziert“ von Azure Spring Apps zu Azure Container Apps.
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
- Ein Azure-Abonnement. Wenn Sie kein Azure-Abonnement haben, lesen Sie Kostenloses Azure-Konto, bevor Sie beginnen.
- Eine Dienstinstanz für den Azure Spring Apps-Standardverbrauchs- und dedizierten Plan. Weitere Informationen finden Sie unter Schnellstart: Bereitstellen einer Dienstinstanz des Azure Spring Apps-Standardverbrauchs- und dedizierten Plans.
- Eine in Azure Spring Apps bereitgestellte Spring-App.
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.
- Melden Sie sich beim Azure-Portal an.
- Wählen Sie unter Azure-Dienste die Option Azure Spring Apps aus.
- Wählen Sie in der Spalte Name die Azure Spring Apps-Instanz aus, die automatisch skaliert werden soll.
- Wählen Sie auf der Übersichtsseite für Ihre Azure Spring Apps-Instanz im Navigationsbereich Apps aus.
- Wählen Sie die Anwendung aus, die automatisch skaliert werden soll.
- Wählen Sie auf der Übersichtsseite für die ausgewählte App im Navigationsbereich Horizontal hochskalieren aus.
- Wählen Sie auf der Seite Horizontal hochskalieren (Vorschau) die Bereitstellung aus, die automatisch skaliert werden soll.
- Richten Sie die Instanzgrenzwerte Ihrer Bereitstellung ein.
- Wählen Sie Hinzufügen aus, um Ihre Skalierungsregeln hinzuzufügen.
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.
Hinweis
Microsoft empfiehlt, immer den sichersten Authentifizierungsflow zu verwenden, der verfügbar ist. Der in diesem Verfahren beschriebene Authentifizierungsflow, beispielsweise für Datenbanken, Zwischenspeicher, Nachrichten oder KI-Dienste, erfordert ein sehr hohes Maß an Vertrauen in die Anwendung und birgt Risiken, die bei anderen Flows nicht vorhanden sind. Verwenden Sie diesen Flow nur, wenn sicherere Optionen wie verwaltete Identitäten für kennwortlose oder schlüssellose Verbindungen nicht geeignet sind. Bei Vorgängen des lokalen Computers bevorzugen Sie Benutzeridentitäten für kennwortlose oder schlüssellose Verbindungen.
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 ..."