Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Wanneer u Durable Task SDK-apps in Azure Container Apps host, kunt u automatisch schalen configureren, zodat het platform automatisch het aantal replica's aanpast op basis van uw indeling, activiteit of entiteitsworkload.
In dit artikel leert u het volgende:
- Stel minimum- en maximumaantal replica's in voor uw container-app.
- Voeg schaalregels toe die reageren op Durable Task Scheduler-werkitems.
- Implementeer en verifieer een voorbeeld van automatische schaalaanpassing met behulp van Azure Developer CLI.
Opmerking
Automatisch schalen wordt ondersteund voor apps die zijn gebouwd met behulp van de Durable Task SDK's en gehost in Azure Container Apps. Deze functie maakt gebruik van de azure-durabletask-scheduler KEDA-schaalfunctie.
Important
Instellen van minReplicas naar 0 maakt schalen naar nul mogelijk, wat kosten bespaart bij inactiviteit, maar koude-startlatentie kan optreden zodra nieuwe werkitems binnenkomen. Ingesteld minReplicas op 1 of hoger als uw workload latentiegevoelig is.
De automatische schaalaanpassing configureren
U kunt de configuratie van automatische schaalaanpassing instellen via de Azure-portal, een Bicep-sjabloon en de Azure CLI.
Navigeer in Azure Portal naar uw container-app.
Selecteer Toepassingsschaal> in het menu aan de linkerkant.
Stel de minimumreplica's en maximumreplica's in voor uw revisie.
Selecteer Toevoegen om een nieuwe schaalregel te maken. Stel het type in op Aangepast en configureer de velden Durable Task Scheduler.
Zorg ervoor dat het selectievakje Verifiëren met een beheerde identiteit is ingeschakeld en kies de identiteit die is gekoppeld aan uw scheduler en taakhubresource.
Selecteer Opslaan.
| Veld | Beschrijving | Voorbeeld |
|---|---|---|
| Minimum aantal replicas | Minimaal aantal replica's dat op elk gewenst moment is toegestaan voor de containerrevisie. | 1 |
| Maximum aantal replica's | Het maximum aantal replica's dat op elk gewenst moment is toegestaan voor de containerrevisie. | 10 |
| endpoint | Het Durable Task Scheduler-eindpunt waarmee de scaler verbinding maakt. | https://dts-ID.centralus.durabletask.io |
| maxConcurrentWorkItemsCount | Maximum aantal werkitems dat een enkele replica gelijktijdig verwerkt. Lagere waarden zorgen ervoor dat de schaaltool eerder replica's toevoegt. Begin met 1 voor CPU-intensief werk; verhoog voor I/O-gebonden workloads. |
1 |
| taskhubName | De naam van de taakhub die is verbonden met de planner. | taskhub-ID |
| werkitemtype | Het type werkitem dat wordt verzonden. Opties zijn onder andere Orchestration, Activityof Entity. |
Orchestration |
| Beheerde identiteit | De door de gebruiker toegewezen of door het systeem toegewezen beheerde identiteit die is gekoppeld aan de scheduler- en task hub-resource. | /subscriptions/<SUB_ID>/resourceGroups/<RG>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<IDENTITY_NAME> |
Zelfstudie: Een container-app voor automatisch schalen inzetten
Hebt u automatische schaalaanpassing al geconfigureerd voor een bestaande app? U kunt deze sectie overslaan. Als u een praktische stapsgewijze instructie wilt, volg dan de onderstaande stappen om autoscaling in het voorbeeld Azure Container Apps met Azure Developer CLI te implementeren. In het voorbeeld wordt een .NET Durable Task SDK-app geïmplementeerd die gebruikmaakt van het patroon voor functiekoppeling en een vooraf geconfigureerde KEDA-schaalfunctie bevat.
Opmerking
Hoewel in dit voorbeeld de Durable Task .NET SDK wordt gebruikt, is automatisch schalen taalneutraal.
Vereiste voorwaarden
- .NET 8 SDK of hoger
- Docker (voor het bouwen van de image)
- Azure Developer CLI
Uw omgeving instellen
Kloon de map
Azure-Samples/Durable-Task-Scheduler.git clone https://github.com/Azure-Samples/Durable-Task-Scheduler.gitVerifieer met Azure met behulp van de Azure Developer CLI.
azd auth login
De oplossing implementeren met behulp van Azure Developer CLI
Navigeer naar de
AutoscalingInACAvoorbeeldmap.cd /path/to/Durable-Task-Scheduler/samples/scenarios/AutoscalingInACAInitialiseer de Azure Developer CLI-omgeving (alleen de eerste keer vereist):
azd initResources inrichten en de toepassing implementeren:
azd upGeef de volgende parameters op wanneer u hierom wordt gevraagd in de terminal.
Kenmerk Beschrijving Naam van de omgeving Voorvoegsel voor de resourcegroep die is gemaakt voor het opslaan van alle Azure-resources. Azure locatie De Azure-locatie voor uw resources. Azure-abonnement Het Azure-abonnement voor uw resources. Dit proces kan enige tijd in beslag nemen. Wanneer de
azd upopdracht is voltooid, worden in de CLI-uitvoer twee koppelingen van Azure portal weergegeven om de voortgang van de implementatie te controleren. De uitvoer laat ook zien hoeazd up:- Hiermee maakt en configureert u alle benodigde Azure-resources via de opgegeven Bicep-bestanden in de
./inframap met behulp vanazd provision. Zodra de Azure Developer CLI is ingericht, hebt u toegang tot deze resources via Azure Portal. De bestanden die de Azure-resources inrichten, zijn onder andere:main.parameters.jsonmain.bicep- Een
appresourcesmap georganiseerd op functionaliteit - Een
core-referentiebibliotheek die Bicep-modules bevat die door deazd-sjabloon worden gebruikt
- Hiermee wordt de code geïmplementeerd met behulp van
azd deploy
Verwachte uitvoer
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.- Hiermee maakt en configureert u alle benodigde Azure-resources via de opgegeven Bicep-bestanden in de
Geslaagde implementatie bevestigen
Controleer in de Azure Portal of de orkestraties succesvol worden uitgevoerd.
Kopieer de naam van de resourcegroep uit de terminaluitvoer.
Meld u aan bij Azure Portal en zoek naar de naam van die resourcegroep.
Klik op de overzichtspagina van de resourcegroep op de resource van de client-app container.
Selecteer Bewakingslogboekstream>.
Controleer of de klantcontainer de taken voor functiecombinatie registreert.
Ga terug naar de pagina van de resourcegroep om de
workercontainer te selecteren.Selecteer Bewakingslogboekstream>.
Controleer of de werkrolcontainer de taken van de functieketen vastgeeft.
Inzicht in de aangepaste schaalregelaar
Dit voorbeeld bevat een azure.yaml configuratiebestand. Toen u azd up hebt uitgevoerd, hebt u de hele voorbeeldoplossing geïmplementeerd in Azure, inclusief een aangepaste schaalfunctie voor uw container-apps die automatisch worden geschaald op basis van de workload van Durable Task Scheduler.
De aangepaste schaalaanpassing:
- Bewaakt het aantal in behandeling zijnde indelingen in de taakhub.
- Hiermee schaalt u het aantal werkrolreplica's omhoog met een verhoogde werkbelasting.
- Schaalt terug naar beneden wanneer de belasting afneemt.
- Biedt efficiënt resourcegebruik door de capaciteit aan de vraag te koppelen.
De scalerconfiguratie controleren
Controleer of de automatische schaalaanpassing correct werkt in de geïmplementeerde oplossing.
Navigeer in de Azure-portal naar uw worker-app.
Selecteer vanuit het menu aan de linkerkant Toepassing>Revisies en replica's.
Selecteer het tabblad Replica's om te controleren of uw toepassing wordt uitgeschaald.
Selecteer Toepassingsschaal> in het menu aan de linkerkant.
Selecteer de naam van de schaalregel om de schaalaanpassingsinstellingen weer te geven.