Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können die automatische Skalierung in Container-Apps implementieren, die den Durable Task Scheduler verwenden. Die Automatische Skalierung behält die Zuverlässigkeit und Skalierbarkeit von lang andauernden Workflows bei, indem sie sich an sich ändernde Anforderungen anpassen, ohne manuell eingreifen zu müssen.
Steuern Sie die automatische Skalierung, indem Sie den Bereich von Anwendungsreplikaten festlegen, die als Reaktion auf eine Orchestrierung, Aktivität oder Entität bereitgestellt werden, die ausgelöst wird. Der Scaler passt die Anzahl der Container-App-Replikate innerhalb dieses Bereichs dynamisch an, sodass Ihre Lösung Spitzen in der Arbeitsauslastung verarbeiten und die Ressourcenauslastung verhindern kann.
Hinweis
Die automatische Skalierung wird für Apps unterstützt, die mit den sdKs für dauerhafte Aufgaben erstellt und in Azure-Container-Apps gehostet werden.
Konfigurieren Sie den Autoscaler
Sie können die AutoScaler-Konfiguration über das Azure-Portal, eine Bicep-Vorlage und die Azure CLI festlegen.
Feld | BESCHREIBUNG | Beispiel |
---|---|---|
Minimale Anzahl an Replikaten | Die Mindestanzahl der Replikate, die für die Containerrevision zu einem bestimmten Zeitpunkt zulässig sind. | 1 |
Maximale Anzahl Replikate | Maximale Anzahl von Replikaten, die für die Containerrevision zu einem bestimmten Zeitpunkt zulässig sind. | 10 |
Endpunkt | Der Durable Task Scheduler-Endpunkt, zu dem der Scaler eine Verbindung herstellt. | https://dts-ID.centralus.durabletask.io |
maxConcurrentWorkItemsCount | Die maximale Anzahl gleichzeitiger Arbeitselemente, die als Ereignis an die Computeressource gesendet werden, etwa, wenn Sie die Computeressource anweisen, eine Orchestrierung auszuführen. | 1 |
taskhubName | Der Name des mit dem Scheduler verbundenen Aufgabenhubs. | taskhub-ID |
Arbeitsobjekttyp | Der Arbeitselementtyp, der verteilt wird. Zu den Optionen gehören "Orchestrierung", "Aktivität" oder "Entität". | Orchestrierung |
Verwaltete Identität | Die vom Benutzer zugewiesene oder vom System verwaltete Identität, die mit den Ressourcen "Scheduler" und "Task Hub" verknüpft sind. Stellen Sie sicher, dass das Kontrollkästchen " Authentifizieren mit verwalteter Identität " aktiviert ist. | someone@example.com |
Experimentieren mit dem Beispiel
Im Beispiel für die automatische Skalierung in Azure Container-Apps verwenden Sie die Azure Developer CLI, um die automatische Skalierung für eine Container-App zu implementieren, die mit dem .NET Durable Task SDK erstellt und in Azure-Container-Apps gehostet wird. Das Beispiel zeigt eine Orchestrierung mithilfe des Funktionskettenmusters.
Hinweis
Obwohl in diesem Beispiel das .NET SDK für dauerhafte Aufgaben verwendet wird, ist die automatische Skalierung sprachunabhängig.
Voraussetzungen
- .NET 8 SDK oder höher
- Docker (zum Erstellen des Images)
- Azure Developer CLI
Richten Sie Ihre Umgebung ein
Klonen Sie das
Azure-Samples/Durable-Task-Scheduler
Verzeichnis.git clone https://github.com/Azure-Samples/Durable-Task-Scheduler.git
Authentifizieren Sie sich mit Azure mithilfe der Azure Developer CLI.
azd auth login
Bereitstellen der Lösung mithilfe der Azure Developer CLI
Navigieren Sie zum
AutoscalingInACA
Beispielverzeichnis.cd /path/to/Durable-Task-Scheduler/samples/scenarios/AutoscalingInACA
Bereitstellen von Ressourcen und Bereitstellen der Anwendung:
azd up
Wenn Sie im Terminal dazu aufgefordert werden, geben Sie die folgenden Parameter ein.
Parameter BESCHREIBUNG Umgebungsname Präfix für die Ressourcengruppe, die für alle Azure-Ressourcen erstellt wurde. Azure-Standort Der Azure-Speicherort für Ihre Ressourcen. Azure-Abonnement Das Azure-Abonnement für Ihre Ressourcen. Dieser Vorgang nimmt einige Zeit in Anspruch. Nach Abschluss des
azd up
Befehls zeigt die CLI-Ausgabe zwei Azure-Portal-Links an, um den Bereitstellungsfortschritt zu überwachen. Die Ausgabe veranschaulicht außerdem, wieazd up
:- Erstellt und konfiguriert alle erforderlichen Azure-Ressourcen mithilfe der bereitgestellten Bicep-Dateien im
./infra
Verzeichnis mitazd provision
. Nachdem Sie die Azure Developer CLI bereitgestellt haben, können Sie über das Azure-Portal auf diese Ressourcen zugreifen. Zu den Dateien, die die Azure-Ressourcen bereitstellen, gehören:main.parameters.json
main.bicep
- Ein
app
Ressourcenverzeichnis, das nach Funktionalität organisiert ist - Eine
core
Referenzbibliothek, die die von derazd
Vorlage verwendeten Bicep-Module enthält
- Stellt den Code mithilfe von
azd deploy
bereit
Erwartete Ausgabe
Packaging services (azd package) (✓) Done: Packaging service client - Image Hash: {IMAGE_HASH} - Target Image: {TARGET_IMAGE} (✓) Done: Packaging service worker - Image Hash: {IMAGE_HASH} - Target Image: {TARGET_IMAGE} Provisioning Azure resources (azd provision) Provisioning Azure resources can take some time. Subscription: SUBSCRIPTION_NAME (SUBSCRIPTION_ID) Location: West US 2 You can view detailed progress in the Azure Portal: https://portal.azure.com/#view/HubsExtension/DeploymentDetailsBlade/~/overview/id/%2Fsubscriptions%SUBSCRIPTION_ID%2Fproviders%2FMicrosoft.Resources%2Fdeployments%2FCONTAINER_APP_ENVIRONMENT (✓) Done: Resource group: GENERATED_RESOURCE_GROUP (1.385s) (✓) Done: Virtual Network: VNET_ID (862ms) (✓) Done: Container Apps Environment: GENERATED_CONTAINER_APP_ENVIRONMENT (54.125s) (✓) Done: Container Registry: GENERATED_REGISTRY (1m27.747s) (✓) Done: Container App: SAMPLE_CLIENT_APP (21.39s) (✓) Done: Container App: SAMPLE_WORKER_APP (24.136s) Deploying services (azd deploy) (✓) Done: Deploying service client - Endpoint: https://SAMPLE_CLIENT_APP.westus2.azurecontainerapps.io/ (✓) Done: Deploying service worker - Endpoint: https://SAMPLE_WORKER_APP.westus2.azurecontainerapps.io/ SUCCESS: Your up workflow to provision and deploy to Azure completed in 10 minutes 34 seconds.
- Erstellt und konfiguriert alle erforderlichen Azure-Ressourcen mithilfe der bereitgestellten Bicep-Dateien im
Erfolgreiche Bereitstellung bestätigen
Überprüfen Sie im Azure-Portal, ob die Orchestrierungen erfolgreich ausgeführt werden.
Kopieren Sie den Ressourcengruppennamen aus der Terminalausgabe.
Melden Sie sich beim Azure-Portal an, und suchen Sie nach diesem Ressourcengruppennamen.
Klicken Sie auf der Übersichtsseite der Ressourcengruppe auf die Clientcontainer-App-Ressource.
Wählen Sie Überwachung>Protokollstream aus.
Vergewissern Sie sich, dass der Clientcontainer die Funktionskettenaufgaben protokolliert.
Navigieren Sie zurück zur Ressourcengruppenseite, um den
worker
Container auszuwählen.Wählen Sie Überwachung>Protokollstream aus.
Vergewissern Sie sich, dass der Workercontainer die Aufgaben zur Funktionsverkettung protokolliert.
Grundlegendes zum benutzerdefinierten Scaler
Dieses Beispiel enthält eine azure.yaml
Konfigurationsdatei. Wenn Sie azd up
ausgeführt haben, haben Sie die gesamte Beispiellösung für Azure bereitgestellt, einschließlich eines benutzerdefinierten Scalers für Ihre Container-Apps, der sich automatisch entsprechend der Arbeitslast des dauerhaften Aufgabenplaners skaliert.
Der benutzerdefinierte Scaler:
- Überwacht die Anzahl der ausstehenden Orchestrierungen im Aufgabenhub.
- Skaliert die Anzahl der Workerreplikate mit zunehmender Arbeitsauslastung.
- Skaliert zurück, wenn die Last verringert wird.
- Bietet eine effiziente Ressourcenauslastung durch Zuordnen der Kapazität zu Bedarf.
Vergewissern Sie sich, dass der Scaler konfiguriert ist.
Überprüfen Sie, ob die automatische Skalierung in der bereitgestellten Lösung ordnungsgemäß funktioniert.
Navigieren Sie im Azure-Portal zu Ihrer Worker-App.
Klicken Sie im linken Menü auf Anwendungsrevisionen>und Replikate.
Klicken Sie auf die Registerkarte "Replikate ", um zu überprüfen, ob ihre Anwendung eine Skalierung ausgeführt hat.
Klicken Sie im linken Menü auf Anwendung>Skala.
Klicken Sie auf den Skalierungsnamen, um die Skalierungseinstellungen anzuzeigen.
Nächste Schritte
Derzeit ist die automatische Skalierung von Container-Apps mit Durable Functions für den Durable Task Scheduler nicht verfügbar. Probieren Sie in der Zwischenzeit Container-Apps mit automatischer Skalierung unter Verwendung des Microsoft SQL (MSSQL)-Back-Ends aus.