Dela via


Konfigurera automatisk skalning för Durable Task SDK-appen som finns i Azure Container Apps (förhandsversion)

Du kan implementera automatisk skalning i containerappar som använder Durable Task Scheduler. Autoskalning bibehåller tillförlitligheten och skalbarheten för långvariga arbetsflöden genom att anpassas till föränderliga krav utan manuella åtgärder.

Kontrollera autoskalning genom att ange intervallet för programrepliker som distribueras som svar på en orkestrering, aktivitet eller entitet som utlöses. Skalningsprogrammet justerar dynamiskt antalet containerapprepliker inom det intervallet, så att din lösning kan hantera toppar i arbetsbelastningen och förhindra resursöverbelastning.

Anmärkning

Autoskalning stöds för appar som skapats med SDK:er för varaktiga uppgifter och som finns i Azure Container Apps.

Konfigurera autoskalaren

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

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

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

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 Det maximala antalet samtidiga arbetsobjekt som skickas som en händelse till din beräkning, till exempel att be beräkningen att köra en orkestrering. 1
taskhubName Namnet på den aktivitetshubb som är ansluten till schemaläggaren. taskhub-ID
arbetsobjektstyp Den typ av arbetsobjekt som skickas. Alternativen är Orkestrering, Aktivitet eller Entitet. Orkestrering
Hanterad identitet Den användartilldelade eller systemtilldelade hanterade identiteten som är kopplad till schemaläggaren och resursen för aktivitetshubben. Kontrollera att kryssrutan Autentisera med en hanterad identitet är markerad. someone@example.com

Experimentera med exemplet

I exemplet Autoskalning i Azure Container Apps använder du Azure Developer CLI för att implementera automatisk skalning för en containerapp som skapats med .NET Durable Task SDK och finns i Azure Container Apps. Exemplet visar en orkestrering med hjälp av funktionslänkningsmönstret.

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. Etablera resurser och distribuera programmet:

    azd up
    
  3. 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-plats Azure-platsen för dina resurser.
    Azure-prenumeration Azure-prenumerationen för dina resurser.

    Den här processen kan ta lite tid att slutföra. azd up När kommandot har slutförts visar CLI-utdata två Azure Portal lä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 ./infra katalogen med azd provision. När du har tillhandahållits av Azure Developer CLI kan du komma åt dessa resurser 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, kontrollera 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 updistribuerade 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.

Bekräfta att skalningsreglaget har konfigurerats

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

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

  2. Från menyn till vänster väljer du Applikation>Revisioner och kopior.

  3. Klicka på fliken Repliker för att kontrollera att programmet skalas ut.

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

  5. Klicka på skalningsnamnet för att visa skalningsinställningarna.

Nästa steg

För närvarande är automatisk skalning av containerappar som använder Durable Functions for Durable Task Scheduler inte tillgängligt. Under tiden, prova att autoskala containerappar med Microsoft SQL-programvara (MSSQL).