Share via


Quickstart: Een Durable Functions-app configureren voor het gebruik van Azure Functions Durable Task Scheduler (preview)

Schrijf stateful functies in een serverloze omgeving met behulp van Durable Functions, een functie van Azure Functions. Scenario's waarin Duurzame Functies nuttig zijn, zijn het coördineren van microservices en werkstromen, toestandsafhankelijke patronen zoals fan-out/fan-in en langlopende taken.

U kunt de Durable Task Scheduler als back-end voor uw Durable Functions gebruiken om indeling en runtimestatus van entiteiten op te slaan.

In deze snelstart, gaat u het volgende doen:

  • Configureer een bestaande Durable Functions-app voor het gebruik van Durable Task Scheduler.
  • Stel de Durable Task Emulator in voor lokale ontwikkeling.
  • Implementeer uw app in Azure in het App Service-plan met behulp van Visual Studio Code.
  • Controleer de status van uw app en taakhub op het dashboard Durable Task Scheduler.

Opmerking

Durable Task Scheduler ondersteunt momenteel alleen Durable Functions die worden uitgevoerd op Functions Premium - en App Service-abonnementen .

Vereiste voorwaarden

In deze quickstart wordt ervan uitgegaan dat u al een Azure Functions-project op uw lokale computer hebt met:

  • Er zijn Durable Functions aan uw project toegevoegd, waaronder:
    • Een orchestrator-functie.
    • Een clientfunctie die de Durable Functions-app activeert.
  • Het project dat is geconfigureerd voor lokale foutopsporing.

Als u niet aan deze vereisten voldoet, wordt u aangeraden te beginnen met een van de volgende quickstarts om een lokaal Functions-project in te stellen:

U hebt ook het volgende nodig:

  • Docker is geïnstalleerd om de Durable Task Scheduler-emulator uit te voeren.
  • Azurite geïnstalleerd.
  • Een HTTP-testprogramma waarmee uw gegevens veilig blijven.

Het Durable Task Scheduler-pakket toevoegen

Installeer de nieuwste versie van het pakket Microsoft.Azure.Functions.Worker.Extensions.DurableTask.AzureManaged met behulp van de opdracht dotnet add package :

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

Opmerking

Voor de Durable Task Scheduler-extensie is Microsoft.Azure.Functions.Worker.Extensions.DurableTask1.2.2 of hoger vereist.

Werk in host.jsonde extensionBundle eigenschap bij om de preview-versie te gebruiken die het Durable Task Scheduler-pakket bevat:

{
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
    "version": "[4.29.0, 5.0.0)"
  }
}

Host.json bijwerken

Werk de host.json als volgt bij om Durable Task Scheduler als back-end te gebruiken.

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

local.settings.json configureren

Voeg verbindingsgegevens toe voor lokale ontwikkeling:

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "<DEPENDENT ON YOUR PROGRAMMING LANGUAGE>",
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;Authentication=None",
    "TASKHUB_NAME": "default"
  }
}

De Durable Task Emulator instellen

  1. Haal de Docker-installatiekopie op die de emulator bevat.

    docker pull mcr.microsoft.com/dts/dts-emulator:latest
    
  2. Voer de emulator uit.

    docker run -d -p 8080:8080 -p 8082:8082 mcr.microsoft.com/dts/dts-emulator:latest
    

    De volgende uitvoer geeft aan dat de emulator is gestart.

    Schermopname van het starten van de emulator in de terminal.

  3. Noteer de poorten die beschikbaar zijn op docker desktop. De scheduler maakt meerdere poorten beschikbaar voor verschillende doeleinden:

    • 8080: gRPC-eindpunt waarmee een app verbinding kan maken met de scheduler
    • 8082: Eindpunt voor durable task scheduler-dashboard

    Schermopname van poorten in Docker.

Lokaal testen

  1. Ga naar de hoofdmap van uw app en start Azurite.

    azurite start
    
  2. Voer de toepassing uit.

    func start
    

    U ziet nu een lijst met de functies in uw app. Als u uw app hebt gemaakt volgens een van de quickstarts voor Durable Functions, ziet u iets vergelijkbaars met de volgende uitvoer:

    Schermopname van functies die worden vermeld bij het lokaal uitvoeren van de app.

  3. Start een indelingsinstantie door een HTTP-aanvraag naar het URL-eindpunt POST te verzenden met behulp van het HTTP-testprogramma dat u hebt gekozen.

  4. Kopieer de URL-waarde voor statusQueryGetUri en plak deze in de adresbalk van uw browser. Je zou de status van de orchestratie-instantie moeten zien:

      {
        "name": "DurableFunctionsOrchestrationCSharp1",
        "instanceId": "b50f8b723f2f44149ab9fd2e3790a0e8",
        "runtimeStatus": "Completed",
        "input": null,
        "customStatus": null,
        "output": [
          "Hello Tokyo!",
          "Hello Seattle!",
          "Hello London!"
        ],
        "createdTime": "2025-02-21T21:09:59Z",
        "lastUpdatedTime": "2025-02-21T21:10:00Z"
      }
    
  5. Voor meer informatie over het orchestratieresultaat kunt u het Durable Task Scheduler-dashboard bekijken via http://localhost:8082/.

  6. Klik op de standaardtaakhub om het bijbehorende dashboard weer te geven.

Opmerking

Meer informatie over het Durable Task Scheduler-dashboard.

De Durable Task Scheduler-emulator slaat indelingsgegevens op in het geheugen, wat betekent dat alle gegevens verloren gaan wanneer deze worden afgesloten.

Ondervindt u problemen met testen? Raadpleeg de gids voor probleemoplossing.

Uw app uitvoeren in Azure

Noodzakelijke bronnen creëren

Maak een Durable Task Scheduler-exemplaar en Azure Functions-app in Azure volgens de integratiestroom voor de Function app. Met deze ervaring wordt automatisch op identiteit gebaseerde toegang ingesteld en worden de vereiste omgevingsvariabelen voor de app geconfigureerd voor toegang tot de scheduler.

  1. Navigeer naar de blade voor het aanmaken van de functie-app en selecteer Functions Premium of App Service als hostingoptie.

    Schermopname van hostingopties voor functie-apps en het selecteren van App Service.

  2. Vul in het Functie-app maken (App Service) blade de informatie op het tabblad Basisbeginselen in.

    Schermopname van het tabblad Basis voor het maken van een functie-app in een App Service-plan.

    Veld Beschrijving
    Abonnement Selecteer uw Azure-abonnement.
    Resourcegroep Selecteer een bestaande resourcegroep of klik op Nieuwe maken om een nieuwe te maken.
    Naam van functie-app Maak een unieke naam voor uw functie-app.
    Wilt u code of een containerafbeelding implementeren? Houd de optie Code geselecteerd.
    Runtimestack Selecteer de runtime die u voor deze quickstart gebruikt.
    Versie Selecteer uw runtime stack-versie.
    Regio Selecteer een van de ondersteunde regio's.
    Besturingssysteem Selecteer uw besturingssysteem.
  3. Selecteer het tabblad Durable Functions .

  4. Kies Durable Task Scheduler als back-endprovider voor uw duurzame functies.

  5. Maak een planningsresource aan. Met deze actie wordt automatisch een taakhub gemaakt.

    Schermopname van het aanmaken van een Function App in een App Service-plan.

    Veld Beschrijving
    Back-end voor opslag Selecteer Durable Task Scheduler.
    Regio Het wordt aanbevolen dat de planner- en functie-app-regio's hetzelfde moeten zijn.
    Duurzame taakplanner Gebruik de aangeboden scheduler-naam of klik op Nieuwe maken om een aangepaste naam te maken.
    Planning Alleen Dedicated is momenteel beschikbaar.
    Capaciteitseenheden Op dit moment kunt u slechts één capaciteitseenheid als optie kiezen.
  6. Klik op Beoordelen en maken om het aanmaken van de resource te beoordelen.

    Er wordt automatisch een door de gebruiker toegewezen beheerde identiteit met de vereiste RBAC-machtiging (op rollen gebaseerd toegangsbeheer) gemaakt en toegevoegd aan de functie-app. U vindt in de overzichtsweergave informatie met betrekking tot de beheerde identiteitsresource, zoals:

    • De rol die eraan is toegewezen (Inzender voor duurzame taakgegevens)

    • De opdracht op het niveau van de taakhub

      Schermopname van de velden en eigenschappen die zijn gekozen en die worden bekeken op het tabblad Beoordelen en maken.

  7. Klik op Maken zodra de validatie is geslaagd.

Implementatie van middelen kan ongeveer 15 tot 20 minuten duren. Zodra dat is voltooid, kunt u uw app implementeren in Azure.

Uw functie-app implementeren in Azure

Belangrijk

Bij het implementeren op een bestaande functie-app wordt de inhoud van die app altijd overschreven in Azure.

  1. Voer in het opdrachtenpalet Azure Functions in en selecteer vervolgens Azure Functions: Implementeren in functie-app.

  2. Selecteer de functie-app die u zojuist hebt gemaakt. Wanneer u wordt gevraagd om eerdere implementaties te overschrijven, selecteert u Implementeren om uw functiecode te implementeren in de nieuwe functie-app-resource.

  3. Wanneer de implementatie is voltooid, selecteert u Uitvoer weergeven om de resultaten van het maken en implementeren weer te geven, inclusief de Azure-resources die u hebt gemaakt. Als u de melding mist, selecteert u het belpictogram in de rechterbenedenhoek om deze opnieuw te zien.

    Schermopname van het venster Uitvoer weergeven.

Apps in Functions Premium-abonnement

Als uw app wordt uitgevoerd in het Functions Premium-abonnement, schakelt u de instelling Bewaking van runtimeschaal na de implementatie in om ervoor te zorgen dat uw app automatisch schaalt op basis van de belasting.

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

Uw functie-app testen

Voer de volgende opdracht uit om de URL van uw functie op te halen:

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

Orchestratiestatus controleren

Controleer de status van de orkestratie-instantie en de activiteitsdetails op het Durable Task Scheduler-dashboard. Voor toegang tot het dashboard moet u zich aanmelden.

Opmerking

In de volgende instructie ziet u een roltoewijzing die is afgestemd op een specifieke taakhub. Als u toegang nodig hebt tot alle taakhubs in een planner, voert u de toewijzing uit op het niveau van de planner.

  1. Navigeer naar de resource van de herbruikbare taakplanner in het portaal.

  2. Klik op de naam van een taakhub.

  3. Selecteer toegangsbeheer (IAM) in het linkermenu.

  4. Klik op Toevoegen om een roltoewijzing toe te voegen.

    Schermopname van het toevoegen van de roltoewijzing in het deelvenster Toegangsbeheer in de portal.

  5. Zoek en selecteer Inzender voor duurzame taakgegevens. Klik op Volgende.

    Schermopname van het selecteren van de roltoewijzing Duurzame taakgegevensbijdrager in de portal.

  6. Selecteer op het tabblad Leden voor Toegang toewijzen aangebruiker, groep of service-principal.

  7. Klik voor leden op + Leden selecteren.

  8. Zoek in het deelvenster Selecteer leden naar uw naam of e-mailadres.

    Schermopname van het selecteren van het door de gebruiker toegewezen beheerde identiteitstype in de portal.

  9. Kies uw e-mail en klik op de knop Selecteren .

  10. Klik op Controleren en toewijzen om het toewijzen van de rol te voltooien.

  11. Zodra de rol is toegewezen, klikt u op Overzicht in het linkermenu van de taakhubresource en gaat u naar de dashboard-URL in de bovenste sectie Essentials .

Hulpmiddelen opruimen

Als u de resources die u hebt gemaakt niet meer nodig hebt om de quickstart te voltooien, verwijdert u de resourcegroep en alle gerelateerde resources om gerelateerde kosten in uw Azure-abonnement te voorkomen.

Volgende stappen