Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Podczas hostowania aplikacji zestawu Durable Task SDK w Azure Container Apps można skonfigurować skalowanie automatyczne, dzięki czemu platforma automatycznie dostosowuje liczbę replik na podstawie aranżacji, działania lub obciążenia jednostek.
W tym artykule dowiesz się, jak:
- Ustaw minimalną i maksymalną liczbę replik dla aplikacji kontenera.
- Dodaj reguły skalowania, które odpowiadają na elementy robocze narzędzia Durable Task Scheduler.
- Wdrażanie i weryfikowanie przykładu skalowania automatycznego przy użyciu interfejsu wiersza polecenia dewelopera Azure.
Uwaga / Notatka
Skalowanie automatyczne jest obsługiwane w przypadku aplikacji utworzonych przy użyciu zestawów SDK rozszerzenia Durable Task i hostowanych w Azure Container Apps. Ta funkcja używa narzędzia skalowania azure-durabletask-scheduler KEDA.
Ważna
Ustawienie minReplicas na 0 umożliwia skalowanie do zera, co pozwala obniżyć koszty w przypadku bezczynności, ale wprowadza opóźnienie rozruchu zimnego, gdy nadejdą nowe zadania. Ustaw minReplicas wartość na 1 lub większą, jeśli obciążenie jest wrażliwe na opóźnienia.
Konfigurowanie skalowania automatycznego
Konfigurację autoskalatora można ustawić za pomocą portalu Azure, szablonu Bicep i Azure CLI.
W witrynie Azure Portal przejdź do aplikacji kontenera.
W menu po lewej stronie wybierz Aplikacja>Skala.
Ustaw wartości Min replicas (Minimalna liczba replik ) i Max replicas (Maksymalna liczba replik ) dla poprawki.
Wybierz pozycję Dodaj , aby utworzyć nową regułę skalowania. Ustaw Typ na Niestandardowy i skonfiguruj pola Trwały harmonogram zadań.
Upewnij się, że pole wyboru Uwierzytelnij przy użyciu tożsamości zarządzanej jest zaznaczone i wybierz tożsamość połączoną z zasobem harmonogramu i centrum zadań.
Wybierz Zapisz.
| Pole | Opis | Przykład |
|---|---|---|
| Minimalna liczba replik | Minimalna dopuszczalna liczba replik dla rewizji kontenera w dowolnym momencie. | 1 |
| Maksymalna liczba replik | Maksymalna liczba replik dozwolona dla wersji kontenera w dowolnym momencie. | 10 |
| punkt końcowy | Punkt końcowy harmonogramu zadań Durable, z którym łączy się moduł skalujący. | https://dts-ID.centralus.durabletask.io |
| maksymalnaLiczbaRównoczesnychZadańRoboczych | Maksymalna liczba elementów roboczych, które jednocześnie przetwarza pojedyncza replika. Niższe wartości powodują, że program scaler dodaje repliki wcześniej. Zacznij z 1 dla zadań intensywnie wykorzystujących CPU; zwiększ ją dla obciążeń związanych z operacjami we/wy. |
1 |
| taskhubName | Nazwa centrum zadań połączonego z harmonogramem. | taskhub-ID |
| typElementuRoboczego | Typ wysyłanego elementu roboczego. Opcje obejmują Orchestration, Activitylub Entity. |
Orchestration |
| Tożsamość zarządzana | Tożsamość zarządzana przypisana przez użytkownika lub przypisana przez system połączona z zasobem harmonogramu i centrum zadań. | /subscriptions/<SUB_ID>/resourceGroups/<RG>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<IDENTITY_NAME> |
Samouczek: Wdrażanie aplikacji kontenera z automatycznym skalowaniem
Już skonfigurowano skalowanie automatyczne w istniejącej aplikacji? Tę sekcję można pominąć. Jeśli potrzebujesz praktycznego przewodnika, wykonaj poniższe kroki, aby wdrożyć Autoscaling w przykładzie Azure Container Apps przy użyciu interfejsu wiersza polecenia dewelopera Azure. Przykład wdraża aplikację .NET Durable Task SDK, która używa wzorca tworzenia łańcucha funkcji i zawiera wstępnie skonfigurowany moduł skalowania KEDA.
Uwaga / Notatka
Mimo że w tym przykładzie użyto zestawu SDK dla Durable Task .NET, autoskalowanie jest niezależne od konkretnego języka.
Wymagania wstępne
- .NET 8 SDK lub nowszy
- Docker (do kompilowania obrazu)
- Interfejs wiersza polecenia dla deweloperów platformy Azure
Konfigurowanie środowiska
Sklonuj katalog
Azure-Samples/Durable-Task-Scheduler.git clone https://github.com/Azure-Samples/Durable-Task-Scheduler.gitUwierzytelnij się w Azure przy użyciu Azure Developer CLI.
azd auth login
Wdrażanie rozwiązania przy użyciu interfejsu wiersza polecenia dla deweloperów platformy Azure
Przejdź do przykładowego
AutoscalingInACAkatalogu.cd /path/to/Durable-Task-Scheduler/samples/scenarios/AutoscalingInACAZainicjuj środowisko Azure Developer CLI (wymagane tylko przy pierwszym uruchomieniu):
azd initAprowizuj zasoby i wdróż aplikację:
azd upPo wyświetleniu monitu w terminalu podaj następujące parametry.
Parameter Opis Nazwa środowiska Prefiks grupy zasobów utworzony do przechowywania wszystkich zasobów platformy Azure. Lokalizacja platformy Azure Lokalizacja Azure dla Twoich zasobów. Subskrypcja platformy Azure Subskrypcja platformy Azure dla twoich zasobów. Ukończenie tego procesu może zająć trochę czasu. Po zakończeniu polecenia
azd updane wyjściowe interfejsu wiersza polecenia wyświetlają dwa linki do portalu Azure, umożliwiające monitorowanie postępu wdrażania. Dane wyjściowe pokazują również, jakazd up:- Tworzy i konfiguruje wszystkie niezbędne zasoby platformy Azure za pośrednictwem udostępnionych plików Bicep w
./infrakatalogu przy użyciu poleceniaazd provision. Gdy zasoby zostaną aprowizowane przez Azure Developer CLI, można uzyskać do nich dostęp przez portal Azure. Pliki udostępniające zasoby Azure obejmują:main.parameters.jsonmain.bicep-
appKatalog zasobów uporządkowany według funkcji - Biblioteka referencyjna
core, która zawiera moduły Bicep używane w szablonieazd
- Wdraża kod przy użyciu polecenia
azd deploy
Oczekiwane dane wyjściowe
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.- Tworzy i konfiguruje wszystkie niezbędne zasoby platformy Azure za pośrednictwem udostępnionych plików Bicep w
Potwierdzanie pomyślnego wdrożenia
W portalu Azure zweryfikuj, czy orkiestracje działają pomyślnie.
Skopiuj nazwę grupy zasobów z danych wyjściowych terminalu.
Zaloguj się do portalu Azure i wyszukaj nazwę tej grupy zasobów.
Na stronie przeglądu grupy zasobów kliknij zasób aplikacji kontenera dla klienta.
Wybierz opcję Monitorowanie>Strumień logu.
Upewnij się, że kontener klienta rejestruje zadania łańcucha funkcji.
Wróć do strony grupy zasobów, aby wybrać
workerkontener.Wybierz opcję Monitorowanie>Strumień logu.
Upewnij się, że kontener procesu roboczego rejestruje zadania łańcucha funkcji.
Omówienie niestandardowego modułu skalowania
Ten przykład zawiera azure.yaml plik konfiguracji. Po uruchomieniu azd up wdrożono całe przykładowe rozwiązanie na platformie Azure, w tym niestandardowy moduł skalowania dla aplikacji kontenerowych, który automatycznie się skaluje na podstawie obciążenia narzędzia Durable Task Scheduler.
Niestandardowy moduł skalowania:
- Monitoruje liczbę oczkujących orkiestracji w centrum operacji.
- Skaluje liczbę replik procesów roboczych wraz ze zwiększonym obciążeniem.
- Skaluje się z powrotem w dół, gdy obciążenie się zmniejsza.
- Zapewnia efektywne wykorzystanie zasobów przez dopasowanie pojemności do zapotrzebowania.
Zweryfikuj konfigurację scalera
Sprawdź, czy skalowanie automatyczne działa prawidłowo w wdrożonym rozwiązaniu.
W portalu Azure przejdź do aplikacji roboczej.
W menu po lewej stronie wybierz Aplikacja>Poprawki i repliki.
Wybierz kartę Repliki, aby sprawdzić, czy aplikacja jest skalowana poziomo.
W menu po lewej stronie wybierz Aplikacja>Skala.
Wybierz nazwę reguły skalowania, aby wyświetlić ustawienia narzędzia scaler.