Overzicht van Durable Functions-versies

Durable Functions is een uitbreiding van Azure Functions en Azure WebJobs waarmee u stateful functies kunt schrijven in een serverloze omgeving. Met de extensie worden status, controlepunten en het opnieuw opstarten voor u beheerd. Als u nog niet bekend bent met Durable Functions, raadpleegt u de overzichtsdocumentatie.

Nieuwe functies in 2.x

In deze sectie worden de functies van Durable Functions beschreven die zijn toegevoegd in versie 2.x.

Notitie

Deze sectie is niet van toepassing op Durable Functions in dotnet isolated worker. Zie Het overzicht van het geïsoleerde proces van Durable Functions hiervoor.

Duurzame entiteiten

In Durable Functions 2.x hebben we een nieuw concept voor entiteitsfuncties geïntroduceerd.

Met entiteitsfuncties worden bewerkingen gedefinieerd voor het lezen en bijwerken van kleine stukjes status, ook wel duurzame entiteiten genoemd. Net als orchestratorfuncties zijn entiteitsfuncties functies met een speciaal triggertype, entiteittrigger. In tegenstelling tot orchestratorfuncties hebben entiteitsfuncties geen specifieke codebeperkingen. Entiteitsfuncties beheren de status ook expliciet in plaats van impliciet de status aan te geven via de controlestroom.

Zie het artikel durable entities voor meer informatie.

Duurzame HTTP

In Durable Functions 2.x hebben we een nieuwe durable HTTP-functie geïntroduceerd waarmee u het volgende kunt doen:

  • HTTP-API's rechtstreeks aanroepen vanuit indelingsfuncties (met enkele gedocumenteerde beperkingen).
  • Implementeer automatische HTTP 202-status polling aan de clientzijde.
  • Ingebouwde ondersteuning voor Azure Managed Identities.

Zie het artikel HTTP-functies voor meer informatie.

Migreren van 1.x naar 2.x

In deze sectie wordt beschreven hoe u uw bestaande versie 1.x Durable Functions migreert naar versie 2.x om te profiteren van de nieuwe functies.

De extensie upgraden

Installeer de nieuwste versie 2.x van de extensie Durable Functions bindingen in uw project.

JavaScript, Python en PowerShell

Durable Functions 2.x is beschikbaar vanaf versie 2.x van de Azure Functions uitbreidingsbundel.

Python-ondersteuning in Durable Functions vereist Durable Functions 2.x of hoger.

Als u de versie van de extensiebundel in uw project wilt bijwerken, opent u host.json en werkt u de extensionBundle sectie bij om versie 4.x ([4.*, 5.0.0)) te gebruiken.

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.*, 5.0.0)"
    }
}

Notitie

Als Visual Studio Code niet de juiste sjablonen weergeeft nadat u de versie van de extensiebundel hebt gewijzigd, laadt u het venster opnieuw door de opdracht Developer: Venster opnieuw laden uit te voeren (Ctrl+R in Windows en Linux, Command+R in macOS).

Java

Durable Functions 2.x is beschikbaar vanaf versie 4.x van de Azure Functions uitbreidingsbundel. U moet de runtime Azure Functions 4.0 gebruiken om Java-functies uit te voeren.

Als u de versie van de extensiebundel in uw project wilt bijwerken, opent u host.json en werkt u de extensionBundle sectie bij om versie 4.x ([4.*, 5.0.0)) te gebruiken.

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.*, 5.0.0)"
    }
}

.NET

Werk uw .NET-project bij zodat de meest recente versie van de extensie Durable Functions bindingen wordt gebruikt.

Zie Register Azure Functions binding extensions (Bindingsextensies registreren) voor meer informatie.

Uw code bijwerken

Durable Functions 2.x introduceert verschillende belangrijke wijzigingen. Durable Functions 1.x-toepassingen zijn zonder codewijzigingen niet compatibel met Durable Functions 2.x. In deze sectie vindt u enkele van de wijzigingen die u moet aanbrengen bij het upgraden van uw versie 1.x-functies naar 2.x.

Host.json-schema

Durable Functions 2.x maakt gebruik van een nieuw host.json-schema. De belangrijkste wijzigingen van 1.x zijn:

  • "storageProvider" (en de "azureStorage" subsectie) voor opslagspecifieke configuratie.
  • "tracing" voor configuratie van tracering en logboekregistratie.
  • "notifications" (en de "eventGrid" subsectie) voor de configuratie van Event Grid-meldingen.

Zie de referentiedocumentatie voor Durable Functions host.json voor meer informatie.

Standaardnaamwijzigingen voor taakhub

Als in versie 1.x de naam van een taakhub niet was opgegeven in host.json, werd deze standaard ingesteld op DurableFunctionsHub. In versie 2.x is de standaardnaam van de taakhub nu afgeleid van de naam van de functie-app. Als u geen taakhubnaam hebt opgegeven bij het upgraden naar 2.x, wordt uw code daarom uitgevoerd met een nieuwe taakhub en hebben alle in-flight indelingen niet langer een toepassing die deze verwerkt. Als u dit wilt omzeilen, kunt u de naam van de taakhub expliciet instellen op de v1.x-standaardwaarde 'DurableFunctionsHub', of u kunt onze implementatierichtlijnen zonder downtime volgen voor meer informatie over het afhandelen van wijzigingen die fouten veroorzaken voor indelingen in de flight.

Wijzigingen in openbare interface (alleen.NET)

In versie 1.x hebben de verschillende contextobjecten die worden ondersteund door Durable Functions abstracte basisklassen die zijn bedoeld voor gebruik in eenheidstests. Als onderdeel van Durable Functions 2.x worden deze abstracte basisklassen vervangen door interfaces.

De volgende tabel bevat de belangrijkste wijzigingen:

1.x 2.x
DurableOrchestrationClientBase IDurableOrchestrationClient of IDurableClient
DurableOrchestrationContext of DurableOrchestrationContextBase IDurableOrchestrationContext
DurableActivityContext of DurableActivityContextBase IDurableActivityContext
OrchestrationClientAttribute DurableClientAttribute

In het geval dat een abstracte basisklasse virtuele methoden bevat, zijn deze virtuele methoden vervangen door extensiemethoden die zijn gedefinieerd in DurableContextExtensions.

function.json-wijzigingen

In Durable Functions 1.x gebruikt de orchestration-clientbinding een type van orchestrationClient. Versie 2.x gebruikt durableClient in plaats daarvan.

Gebeurteniswijzigingen genereren

In Durable Functions 1.x leidde het aanroepen van de gebeurtenis-API voor het genereren van gebeurtenissen en het opgeven van een exemplaar dat niet bestond, tot een fout op de achtergrond. Vanaf 2.x resulteert het verhogen van een gebeurtenis naar een niet-bestaande indeling in een uitzondering.