Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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 documentatie overview.
Versieoverzicht
| Versie | Status | Belangrijke wijzigingen |
|---|---|---|
| v3.x | Actueel (aanbevolen) | Bijgewerkte Azure Storage SDK, verbeterde kostenefficiëntie, geen codewijzigingen om te upgraden van v2.x |
| v2.x | Onderhouden (alleen beveiligings- en bugfixes) | Duurzame entiteiten, Durable HTTP |
| v1.x | Einde van de ondersteuning september 2026 | Legacy |
Wat is er nieuw in v3.x?
De Microsoft.Azure. WebJobs.Extensions.DurableTask v3 package (in volgende secties aangeduid als WebJobs.Extensions.DurableTask) is de huidige aanbevolen versie. Voor het upgraden van v2.x zijn geen codewijzigingen vereist . U hoeft alleen de pakketafhankelijkheden bij te werken. Deze update wordt alleen beschouwd als een belangrijke wijziging voor klanten die Durable C#-apps uitvoeren die gebruikmaken van het in-process model.
Opmerking
Het Durable Functions .NET out-of-process package, Microsoft.Azure. Functions.Worker.Extensions.DurableTask verwijst naar Microsoft. Azure. WebJobs.Extensions.DurableTask als onderliggende assembly. Deze update is dus ook van toepassing op Microsoft. Azure. Functions.Worker.Extensions.DurableTask vanaf versie 1.2.x.
Bijgewerkte Azure Storage SDK
Standaard gebruikt Durable Functions Azure Storage als back-end voor opslag om de toepassingsstatus duurzaam op te slaan. In WebJobs.Extensions.DurableTask v3 is de Azure Storage back-end bijgewerkt om de nieuwste versies van de Azure Storage SDK's te gebruiken: Azure. Data.Tables, Azure. Storage.Blobs en Azure. Storage.Queues. Deze SDK's bieden verbeterde ondersteuning voor beheerde identiteiten, betere prestaties, efficiëntere gegevensverwerking en verbeterde beveiliging vergeleken met de verouderde Microsoft.Azure.Storage.* pakketten die worden gebruikt in v2.x.
Verbeterde kostenefficiëntie (voor de Azure Storage-provider)
In de Azure Storage back-end is Partition Manager verantwoordelijk voor het distribueren van partitions/beheerwachtrijen tussen werknemers. Het pakket WebJobs.Extensions.DurableTask v3 maakt standaard gebruik van Partition Manager V3. Dit is een nieuw ontwerp dat gebruikmaakt van Azure Tabellen voor het beheren van partitietoewijzingen in plaats van Azure Blob-leases. Dit ontwerp kan de opslagkosten aanzienlijk verlagen terwijl foutopsporing eenvoudiger wordt. Wanneer Partition Manager V3 wordt gebruikt, wordt er een nieuwe tabel met de naam Partitionsgemaakt in uw opslagaccount, zodat u eenvoudig de partitiegegevens kunt controleren.
Ondersteuning voor de Azure Functions v1-runtime is verwijderd
WebJobs.Extensions.DurableTask v3 biedt geen ondersteuning meer voor versie 1.x van de Azure Functions-runtime, waarvoor de ondersteuning is gepland om te eindigen op September 2026. Als u Functions Runtime v1 moet gebruiken, gebruikt u een Durable Functions extensieversie lager dan v2.11.0. Houd er rekening mee dat wanneer het geplande einde van de ondersteuning binnenkomt, Durable Functions ook de ondersteuning voor runtime v1 wegneemt.
.NET runtime doelupdate
WebJobs.Extensions.DurableTask v3 werkt de doelruntime bij van .NET Core 3.1 naar .NET 6, met verbeterde prestaties en verbeterde compatibiliteit met moderne .NET functies en bibliotheken. Deze update is afgestemd op toekomstige releases van de Azure Functions-extensiebundels.
Migreren van v2.x naar v3.x
Voor migratie van v2.x naar v3.x zijn geen codewijzigingen vereist. Werk gewoon uw afhankelijkheden bij om de nieuwe functies te kunnen gebruiken.
- In-process model: Bijwerken naar Microsoft.Azure. WebJobs.Extensions.DurableTask versie 3.0.0 of hoger.
- Geïsoleerd werkermodel: Update naar Microsoft.Azure.Functions.Worker.Extensions.DurableTask versie 1.2.0 of later.
Update naar Azure Functions extensiebundel versie 4.22.0 of hoger.
Downgrade compatibiliteit (v3.x naar v2.x)
WebJobs.Extensions.DurableTask v3 maakt gebruik van een andere tekstcodering voor de Azure Storage SDK (Base64) vergeleken met v2 (UTF-8). Als u wilt terugkeren van v3.x naar v2.x, gebruikt u de volgende minimale versies om compatibiliteit met eerdere versies te garanderen:
Ga terug naar een uitbreidingsbundelversie ouder dan 4.22.0.
Ondersteuning en onderhoud van v2.x
WebJobs.Extensions.DurableTask v2.x blijft beveiligingsupdates en bugfixes ontvangen, zodat uw bestaande toepassingen veilig en stabiel blijven. Alle nieuwe functies en verbeteringen worden echter exclusief toegevoegd aan v3.x. Daarom moet u upgraden naar WebJobs.Extensions.DurableTask v3 zodra u kunt profiteren van de nieuwste mogelijkheden en doorlopende verbeteringen.
Functies die zijn geïntroduceerd in v2.x
De volgende functies zijn beschikbaar in Durable Functions 2.x en hoger, in alle ondersteunde talen.
Opmerking
De .NET API-details in deze sectie zijn niet van toepassing op het geïsoleerde worker model. Zie voor geïsoleerde werkbegeleiding de Durable Functions overzicht van geïsoleerde processen.
Duurzame entiteiten
Durable Functions ondersteunt entiteitsfuncties voor het lezen en bijwerken van kleine stukjes status, ook wel bekend als durable entiteiten. Net als orchestratorfuncties zijn entiteitsfuncties functies met een speciaal triggertype, entiteitstrigger. In tegenstelling tot orchestratorfuncties hebben entiteitsfuncties geen specifieke codebeperkingen. Entiteitsfuncties beheren ook de status expliciet in plaats van de status impliciet weer te geven via de controlestroom.
Zie het artikel over duurzame entiteiten voor meer informatie.
Duurzame HTTP
Durable Functions bevat een functie Durable HTTP waarmee u het volgende kunt doen:
- HTTP-API's rechtstreeks aanroepen vanuit indelingsfuncties (met enkele gedocumenteerde beperkingen).
- Implementeer automatische HTTP 202-statuspeiling aan de clientzijde.
- Gebruik ingebouwde ondersteuning voor Azure Beheerde identiteiten.
Zie het artikel over HTTP-functies voor meer informatie.
Migreren van 1.x naar 2.x
Belangrijk
Versie 1.x van de Azure Functions runtime bereikt het einde van de ondersteuning in September 2026. Als u nog steeds v1.x gebruikt, plant u de migratie binnenkort.
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 Durable Functions-extensie upgraden
Installeer de nieuwste 2.x-versie van de Durable Functions bindingsextensie in uw project.
Durable Functions 2.x is beschikbaar vanaf versie 2.x van de Azure Functions extensiebundel.
Python ondersteuning in Durable Functions vereist Durable Functions 2.x of hoger.
Als u de extensiebundelversie 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)"
}
}
Durable Functions 2.x is beschikbaar vanaf versie 2.x van de Azure Functions extensiebundel.
Als u de extensiebundelversie 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)"
}
}
Opmerking
Als Visual Studio Code niet de juiste sjablonen weergeeft nadat u de versie van de extensiebundel hebt gewijzigd, laad het venster opnieuw door de opdracht Ontwikkeling: Venster opnieuw laden opdracht (Ctrl+R op Windows en Linux, Command+R in macOS).
Durable Functions 2.x is beschikbaar vanaf versie 2.x van de Azure Functions extensiebundel.
Als u de extensiebundelversie 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)"
}
}
Werk uw .NET project bij om de nieuwste versie van de extensie Durable Functions bindings te gebruiken.
Zie Register Azure Functions bindingsextensies voor meer informatie.
Uw Durable Functions-code bijwerken
Durable Functions 2.x introduceert verschillende belangrijke wijzigingen. Durable Functions 1.x-toepassingen zijn niet compatibel met Durable Functions 2.x zonder codewijzigingen. In deze sectie vindt u enkele 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 tracerings- en logboekregistratieconfiguratie. -
"notifications"(en de"eventGrid"subsectie) voor de configuratie van Event Grid-meldingen.
Zie de Durable Functions host.json referentiedocumentatie voor meer informatie.
Naamwijzigingen van standaardtaakhub
Als in versie 1.x de naam van een taakhub niet is opgegeven in host.json, is 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 daarom geen naam voor de taakhub hebt opgegeven bij het upgraden naar 2.x, wordt uw code uitgevoerd met een nieuwe taakhub en hebben alle in-flight indelingen geen toepassing meer die ze verwerkt. Als u dit wilt omzeilen, kunt u de naam van uw taakhub expliciet instellen op de v1.x-standaardwaarde "DurableFunctionsHub", of u kunt onze richtlijnen voor implementatie zonder downtime volgen voor specifieke details over hoe u breaking changes voor lopende orkestraties kunt afhandelen.
Wijzigingen in de openbare interface in Durable Functions
In versie 1.x zijn de verschillende context objecten die worden ondersteund door Durable Functions abstracte basisklassen hebben die zijn bedoeld voor gebruik in eenheidstests. Als onderdeel van Durable Functions 2.x worden deze abstracte basisklassen vervangen door interfaces.
De volgende tabel vertegenwoordigt 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 orkestratie-clientbinding een type van orchestrationClient. Versie 2.x gebruikt durableClient in plaats daarvan.
Gebeurteniswijzigingen aanbrengen
In Durable Functions 1.x heeft het aanroepen van de raise-gebeurtenis-API en het opgeven van een exemplaar dat niet bestond, geleid tot een stille fout. Vanaf versie 2.x veroorzaakt het aanroepen van een gebeurtenis naar een niet-bestaande orkestratie een uitzondering.