Konfigurera automatisk skalning för Durable Task SDK-appar i Azure Container Apps

När du är värd för Durable Task SDK-appar i Azure Container Apps kan du konfigurera automatisk skalning så att plattformen automatiskt justerar antalet repliker baserat på din orkestrering, aktivitet eller entitetsarbetsbelastning.

I den här artikeln lär du dig att:

  • Ange minsta och högsta antal repliker för containerappen.
  • Lägg till skalningsregler som svarar på Durable Task Scheduler-arbetsobjekt.
  • Distribuera och verifiera ett exempel på automatisk skalning med hjälp av Azure Developer CLI.

Anmärkning

Autoskalning stöds för appar som skapats med SDK:er för varaktiga uppgifter och som finns i Azure Container Apps. Den här funktionen använder azure-durabletask-scheduler KEDA-skalningsfunktionen.

Important

Inställning av minReplicas till 0 aktiverar skalning till noll, vilket sparar kostnader vid inaktivitet men introducerar latens vid kallstart när nya arbetsuppgifter tas emot. Ange minReplicas till 1 eller högre om din arbetsbelastning är svarstidskänslig.

Konfigurera autoskalaren

Du kan ange autoskalningskonfigurationen via Azure-portalen, en Bicep-mall och Azure CLI.

  1. Gå till din containerapp i Azure-portalen.

  2. På menyn till vänster väljer du Programskala>.

  3. Ange värdena Min-repliker och Max-repliker för din revision.

    Skärmbild av konfigurationen för scaler min och max replica i Azure-portalen.

  4. Välj Lägg till för att skapa en ny skalningsregel. Ange Typ till Anpassad och konfigurera fälten Durable Task Scheduler.

    Skärmbild av den Durable Task Scheduler-relaterade konfigurationen för skalningsappen i Azure-portalen.

  5. Kontrollera att kryssrutan Autentisera med en hanterad identitet är markerad och välj den identitet som är länkad till schemaläggaren och aktivitetshubbens resurs.

  6. Välj Spara.

Fält Beskrivning Exempel
Minimalt antal repliker Minsta antal repliker som tillåts för containerns revision vid varje tidpunkt. 1
Maximalt antal repliker Maximalt antal repliker som tillåts för containerrevisionen vid en viss tidpunkt. 10
slutpunkt Slutpunkten för Durable Task Scheduler som skalaren ansluter till. https://dts-ID.centralus.durabletask.io
Maximalt antal samtidiga arbetsobjekt Maximalt antal arbetsobjekt som en enskild replik bearbetar samtidigt. Lägre värden gör att skalaren lägger till repliker tidigare. Börja med 1 för processorintensivt arbete, öka för I/O-bundna arbetsbelastningar. 1
taskhubName Namnet på den aktivitetshubb som är ansluten till schemaläggaren. taskhub-ID
arbetsobjektstyp Den typ av arbetsobjekt som skickas. Alternativen är Orchestration, Activityeller Entity. Orchestration
Hanterad identitet Den användartilldelade eller systemtilldelade hanterade identiteten som är länkad till schemaläggaren och resursen för aktivitetshubben. /subscriptions/<SUB_ID>/resourceGroups/<RG>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<IDENTITY_NAME>

Självstudie: Distribuera en containerapp för automatisk skalning

Har du redan konfigurerat automatisk skalning i en befintlig app? Du kan hoppa över det här avsnittet. Om du vill ha en praktisk genomgång följer du stegen nedan för att distribuera Autoscaling i Azure Container Apps exempel med hjälp av Azure Developer CLI. Exemplet distribuerar en .NET Durable Task SDK-app som använder funktionslänkningsmönstret och innehåller en förkonfigurerad KEDA-skalning.

Anmärkning

Även om det här exemplet använder Durable Task .NET SDK är autoskalning språkagnostisk.

Förutsättningar

Konfigurera din miljö

  1. Klona Azure-Samples/Durable-Task-Scheduler katalogen.

    git clone https://github.com/Azure-Samples/Durable-Task-Scheduler.git
    
  2. Autentisera med Azure med hjälp av Azure Developer CLI.

    azd auth login
    

Distribuera lösningen med hjälp av Azure Developer CLI

  1. Navigera till exempelkatalogen AutoscalingInACA .

    cd /path/to/Durable-Task-Scheduler/samples/scenarios/AutoscalingInACA
    
  2. Initiera cli-miljön Azure Developer (krävs bara första gången):

    azd init
    
  3. Etablera resurser och distribuera programmet:

    azd up
    
  4. Ange följande parametrar när du uppmanas till det i terminalen.

    Parameter Beskrivning
    Miljönamn Prefix för resursgruppen som skapats för att lagra alla Azure-resurser.
    Azure område Azure-plats för dina resurser.
    Azure-prenumeration Azure-prenumerationen för dina resurser.

    Den här processen kan ta lite tid att slutföra. När kommandot azd up slutförs visar CLI-utdata två Azure portallänkar för att övervaka distributionens förlopp. Utdata visar också hur azd up:

    • Skapar och konfigurerar alla nödvändiga Azure resurser via de angivna Bicep filerna i katalogen ./infra med hjälp av azd provision. När resurserna har tillhandahållits av Azure Developer CLI kan du komma åt dem via Azure-portalen. De filer som tillhandahåller Azure-resurserna är:
      • main.parameters.json
      • main.bicep
      • En app resurskatalog ordnad efter funktion
      • Ett core referensbibliotek som innehåller de Bicep-moduler som används av mallen azd
    • Distribuerar koden med hjälp av azd deploy

    Förväntade utdata

    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.   
    

Bekräfta lyckad distribution

I Azure-portalen kontrollerar du att orkestreringarna körs framgångsrikt.

  1. Kopiera resursgruppens namn från terminalutdata.

  2. Logga in på Azure-portalen och sök efter resursgruppens namn.

  3. På översiktssidan för resursgruppen klickar du på resursen för klientcontainerappen.

  4. Välj Övervakning>Loggström.

  5. Bekräfta att klientcontainern loggar funktionslänkningsuppgifterna.

    Skärmbild av klientcontainerns loggström i Azure-portalen.

  6. Gå tillbaka till resursgruppssidan för att välja containern worker .

  7. Välj Övervakning>Loggström.

  8. Bekräfta att arbetscontainern loggar funktionslänkningsuppgifterna.

    Skärmbild av arbetscontainerns loggström i Azure-portalen.

Förstå den anpassade skalaren

Det här exemplet innehåller en azure.yaml konfigurationsfil. När du körde azd up distribuerade du hela exempellösningen till Azure, inklusive en anpassad skalning för dina containerappar som automatiskt skalar baserat på Durable Task Schedulers arbetsbelastning.

Den anpassade skalaren

  • Övervakar antalet väntande orkestreringar i aktivitetshubben.
  • Skalar upp antalet arbetareplikor med ökad arbetsbelastning.
  • Skalas ned igen när belastningen minskar.
  • Ger effektiv resursanvändning genom att matcha kapacitet mot efterfrågan.

Verifiera skalningskonfigurationen

Kontrollera att autoskalningen fungerar korrekt i den distribuerade lösningen.

  1. Gå till din arbetsapp i Azure-portalen.

  2. På menyn till vänster väljer duProgramrevisioner> och repliker.

  3. Välj fliken Repliker för att kontrollera att programmet skalar ut.

    Skärmbild på sidan Revisioner och repliker som visar skalbara repliker i Azure portalen.

  4. På menyn till vänster väljer du Programskala>.

  5. Välj skalningsregelnamnet för att visa skalningsinställningarna.