Snabbstart: Konfigurera en Durable Functions app för att använda Durable Task Scheduler

Använd Durable Task Scheduler som en serverdel för dina Durable Functions-appar för att lagra orkestrerings- och entitetskörningstillstånd. I den här snabbstarten klonar du ett Hello Cities-exempel som redan har konfigurerats för att använda Durable Task Scheduler, kör det lokalt med emulatorn och distribuerar det sedan till Azure.

  • Klona Hello Cities-exemplet som är förkonfigurerat för Durable Task Scheduler.
  • Konfigurera Durable Task Scheduler-emulatorn för lokal utveckling.
  • Kör exemplet och verifiera orkestreringsutdata.
  • Distribuera appen till Azure och övervaka den via Durable Task Schedulers instrumentpanel.

Förutsättningar

  • Skapa en Durable Functions app – JavaScript

Tip

När emulatorn körs kan du komma åt instrumentpanelen Durable Task Scheduler på http://localhost:8082 för att övervaka orkestreringar.

Kör snabbstartsexemplet

Installera den senaste versionen av paketet Microsoft.Azure.Functions.Worker.Extensions.DurableTask.AzureManaged med hjälp av kommandot dotnet add package :

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.DurableTask.AzureManaged --prerelease

Anmärkning

Tillägget Durable Task Scheduler kräver Microsoft. Azure. Functions.Worker.Extensions.DurableTask version 1.2.2 eller senare.

  1. Skapa och starta funktionsappen:

    dotnet build
    func start
    

I host.jsonuppdaterar du egenskapen så att den extensionBundle använder version 4.32.0 eller senare, vilket inkluderar stöd för Durable Task Scheduler:

{
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle",
    "version": "[4.32.0, 5.0.0)"
  }
}
  1. Starta funktionsappen:

    func start
    
  1. Skapa och starta funktionsappen:

    mvn clean package
    mvn azure-functions:run
    
  1. I en annan terminal utlöser du en orkestrering:

    $response = Invoke-RestMethod -Method POST -Uri http://localhost:7071/api/DurableFunctionsOrchestrationCSharp1_HttpStart
    $response
    
  1. I en annan terminal utlöser du en orkestrering:

    $response = Invoke-RestMethod -Method POST -Uri http://localhost:7071/api/StartChaining
    $response
    
  1. Svaret innehåller status-URL:er för orkestreringsinstansen. Fråga statusQueryGetUri för att kontrollera resultatet:

    Invoke-RestMethod -Uri $response.statusQueryGetUri
    

    När orkestreringens runtimeStatus är Completed innehåller utdata hälsningsresultat. Om runtimeStatus visar Running eller Pendingväntar du en stund och frågar igen.

  2. Visa fler detaljer om orkestreringsinstansen i Durable Task Scheduler-dashboardenhttp://localhost:8082.

Förstå konfigurationen av Durable Task Scheduler

Nyckelkonfigurationen som gör att dessa exempel använder Durable Task Scheduler finns i två filer.

host.json

I avsnittet storageProvider uppmanas Durable Functions att använda Durable Task Scheduler (azureManaged) i stället för standardserverdelen för Azure Storage:

{
  "extensions": {
    "durableTask": {
      "hubName": "default",
      "storageProvider": {
        "type": "azureManaged",
        "connectionStringName": "DURABLE_TASK_SCHEDULER_CONNECTION_STRING"
      }
    }
  }
}

local.settings.json

Anslutningssträngen pekar på den lokala emulatorn för utveckling:

{
  "Values": {
    "DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None"
  }
}

Anmärkning

Om du vill migrera en befintlig Durable Functions app uppdaterar du dessa två filer och lägger till lämpligt tilläggspaket för ditt språk. För .NET installerar du NuGet-paketet Microsoft.Azure.Functions.Worker.Extensions.DurableTask.AzureManaged. För andra språk uppdaterar du tilläggspaketet till host.json version [4.32.0, 5.0.0).

Kör din app i Azure

Skapa nödvändiga resurser

Skapa en instans av Durable Task Scheduler och en Azure Functions-app på Azure enligt det integrerade flödet för skapande av Funktionsappen. Den här upplevelsen konfigurerar automatiskt identitetsbaserad åtkomst och konfigurerar de miljövariabler som krävs för att appen ska få åtkomst till schemaläggaren.

  1. Gå till bladet Skapa funktionsapp.

    Skärmbild av värdalternativ för funktionsappar.

  2. På bladet Skapa funktionsapp (Flex Consumption) fyller du i informationen på fliken Grundläggande .

    Skärmbild av fliken Grundläggande för att skapa en Funktionsapp för flexförbrukningsplan.

    Fält Beskrivning
    Subscription Välj din Azure-prenumeration.
    Resursgrupp Välj en befintlig resursgrupp eller klicka på Skapa ny för att skapa en ny.
    Funktionsappens namn Skapa ett unikt namn för funktionsappen.
    Vill du distribuera kod eller containeravbildning? Behåll alternativet Kod markerat.
    Region Välj en av de regioner som stöds.
    Körningstack Välj den körmiljö som du använder för den här snabbstartsguiden.
    Utgåva Välj din stackversion.
    Instansstorlek Välj en instansstorlek eller använd standardvalet. Läs mer om instansstorlekar.
    Zonredundans Lämna som standardinställningen Inaktiverad .
  3. Välj fliken Varaktiga funktioner .

  4. Välj Azure Managed: Durable Task Scheduler som backend-tjänstleverantör för dina Durable Functions.

  5. Skapa en schemaläggarresurs. Den här åtgärden skapar automatiskt en aktivitetshubb.

    Skärmbild av att skapa en app för Flex Consumption Function.

    Fält Beskrivning
    Lagringsserverdel Välj Durable Task Scheduler – Azure Managed.
    Region Kontrollera att scheduler- och funktionsappregionerna är desamma.
    Schemaläggare för varaktiga uppgifter Använd det erbjudna scheduler-namnet eller klicka på Skapa ny för att skapa ett anpassat namn.
    Plan Välj den prisplan som passar ditt projekt bäst. Kontrollera guiden Välj ett orkestreringsramverk för att avgöra vilken plan som är bäst för produktionsanvändning.
    Kapacitetsenheter Gäller endast när prisplanen "Dedikerad" har valts. Du kan välja upp till 3 kapacitetsenheter.
  6. Klicka på Granska + skapa för att granska resursskapandet.

    En användartilldelad hanterad identitet med den behörighet som krävs för rollbaserad åtkomstkontroll (RBAC) skapas automatiskt och läggs till i funktionsappen. I sammanfattningsvyn hittar du information om den hanterade identitetsresursen, till exempel:

    • Rollen som tilldelats den (durable task data contributor)

    • Tilldelningen som är begränsad till aktivitetshubbens nivå

      Skärmbild av fält och egenskaper som valts och i granskning på fliken Granska + skapa.

  7. Klicka på Skapa när valideringen har slutförts.

Resursdistributionen kan ta cirka 15 till 20 minuter. När det är klart kan du distribuera din app till Azure.

Distribuera din funktionsapp till Azure

Viktigt!

När du distribuerar till en befintlig funktionsapp skrivs alltid innehållet i appen över i Azure.

  1. I kommandopaletten anger du och väljer sedan Azure Functions: Distribuera till funktionsapp.

  2. Välj den funktionsapp som du nyss skapade. När du uppmanas att skriva över tidigare distributioner väljer du Distribuera för att distribuera funktionskoden till den nya funktionsappresursen.

  3. När distributionen är klar väljer du Visa utdata för att visa resultatet av skapandet och distributionen, inklusive de Azure-resurser som du skapade. Om du missar meddelandet väljer du klockikonen i det nedre högra hörnet för att se det igen.

    Skärmbild av fönstret Visa utdata.

Appar på Functions Premium-plan

Om appen körs på Functions Premium-planen aktiverar du inställningen Körningsskalningsövervakning efter distributionen för att säkerställa att appen skalas automatiskt baserat på belastning:

az resource update -g <resource_group> -n <function_app_name>/config/web --set properties.functionsRuntimeScaleMonitoringEnabled=1 --resource-type Microsoft.Web/sites

Testa din funktionsapp

Kör följande kommando för att hämta funktionens URL:

az functionapp function list --resource-group <RESOURCE_GROUP_NAME> --name <FUNCTION_APP_NAME>  --query '[].{Function:name, URL:invokeUrlTemplate}' --output json

Kontrollera orkestreringsstatus

Kontrollera statusen för orkestreringsinstansen och aktivitetsinformationen på Durable Task Scheduler-instrumentpanelen. För att komma åt instrumentpanelen måste du logga in.

Anmärkning

Följande instruktion visar en rolltilldelning som är begränsad till en specifik aktivitetshubb. Om du behöver åtkomst till alla aktivitetshubbar i en schemaläggare utför du tilldelningen på schemaläggningsnivå.

  1. Gå till resursen Durable Task Scheduler på portalen.

  2. Klicka på ett namn på en aktivitetshubb.

  3. Välj Åtkomstkontroll (IAM) i den vänstra menyn.

  4. Klicka på Lägg till för att lägga till en rolltilldelning.

    Skärmbild av att lägga till rolltilldelningen i fönstret Access Control i portalen.

  5. Sök efter och välj Durable Task Data-bidragsgivare. Klicka på Nästa.

    Skärmbild av att välja rolltilldelningen Durable Task Data Contributor i portalen.

  6. På fliken Medlemmar för Tilldela åtkomst till väljer du Användare, grupp eller tjänstens huvudnamn.

  7. För Medlemmar klickar du på + Välj medlemmar.

  8. I fönstret Välj medlemmar söker du efter ditt namn eller din e-postadress:

    Skärmbild av att välja den användartilldelade hanterade identitetstypen i portalen.

  9. Välj din e-post och klicka på knappen Välj .

  10. Klicka på Översikt + tilldelning för att slutföra tilldela rollen.

  11. När rollen har tilldelats klickar du på Översikt på den vänstra menyn i aktivitetshubbens resurs och navigerar till instrumentpanelens URL som finns i det översta avsnittet Essentials .

Rensa resurser

Om du inte längre behöver de resurser som du skapade för att slutföra snabbstarten tar du bort resursgruppen och alla relaterade resurser för att undvika relaterade kostnader i din Azure-prenumeration.

Nästa steg