Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Durable Functions är ett tillägg av Azure Functions och Azure WebJobs som gör att du kan skriva tillståndskänsliga funktioner i en serverlös miljö. Tillägget hanterar tillstånd, kontrollpunkter och omstarter. Om du inte redan är bekant med Durable Functions kan du läsa dokumentationen overview.
Versionssammanfattning
| Version | Status | Viktiga ändringar |
|---|---|---|
| v3.x | Aktuell (rekommenderas) | Uppdaterad Azure Storage SDK, förbättrad kostnadseffektivitet, inga kodändringar för uppgradering från v2.x |
| v2.x | Underhålls (endast säkerhets- och buggkorrigeringar) | Varaktiga entiteter, durable HTTP |
| v1.x | Upphörande av support september 2026 | Legacy |
Nyheter i v3.x
Microsoft.Azure. WebJobs.Extensions.DurableTask v3-paketet (kallas webjobs.extensions.DurableTask i efterföljande avsnitt) är den aktuella rekommenderade versionen. Uppgradering från v2.x kräver inga kodändringar – du behöver bara uppdatera dina paketberoenden. Den här uppdateringen anses bara vara en förändring som bryter kompatibilitet för kunder som kör Durable C#-appar som använder in-process-modellen.
Anmärkning
Detta Durable Functions .NET out-of-process-paket, Microsoft.Azure.Functions.Worker.Extensions.DurableTask, refererar till Microsoft.Azure.WebJobs.Extensions.DurableTask som sin underliggande samling. Den här uppdateringen gäller alltså även för Microsoft. Azure. Functions.Worker.Extensions.DurableTask, från version 1.2.x.
Uppdaterad Azure Storage SDK
Som standard använder Durable Functions Azure Storage som lagringsbackend för att varaktigt spara programtillståndet. I WebJobs.Extensions.DurableTask v3 uppgraderades Azure Storage serverdelen för att använda de senaste versionerna av Azure Storage SDK:er: Azure. Data.Tables, Azure. Storage.Blobs och Azure. Storage.Queues. Dessa SDK:er ger förbättrat stöd för hanterad identitet, bättre prestanda, effektivare datahantering och förbättrad säkerhet jämfört med äldre Microsoft.Azure.Storage.*-paket som används i v2.x.
Förbättrad kostnadseffektivitet (för Azure Storage-providern)
I Azure Storage serverdel ansvarar Partitionshanteraren för att distribuera partitioner/kontrollköer mellan arbetare. WebJobs.Extensions.DurableTask v3-paketet använder som standard Partition Manager V3, vilket är en ny design som använder Azure-tabeller för att hantera partitionstilldelningar i stället för Azure Blob-lån. Den här designen kan avsevärt minska lagringskostnaderna samtidigt som felsökning blir enklare. När Partitionshanteraren V3 används skapas en ny tabell med namnet Partitions, i ditt lagringskonto, så att du enkelt kan kontrollera partitionsinformationen.
Stöd för Azure Functions v1-körning har tagits bort
WebJobs.Extensions.DurableTask v3 stöder inte längre version 1.x av Azure Functions-körningen, vilket är planerat att avslutas i September 2026. Om du måste använda Functions Runtime v1 använder du en Durable Functions-tilläggsversion som är lägre än v2.11.0. Tänk på att när den schemalagda supporten upphör kommer Durable Functions också att släppa sitt stöd för runtime v1.
.NET runtime-miljösuppdatering
WebJobs.Extensions.DurableTask v3 uppdaterar målplattformen från .NET Core 3.1 till .NET 6, vilket ger bättre prestanda och förbättrad kompatibilitet med modern .NET-funktionalitet och bibliotek. Den här uppdateringen överensstämmer med framtida versioner av Azure Functions tilläggspaket.
Migrera från v2.x till v3.x
Migrering från v2.x till v3.x kräver inga kodändringar – uppdatera helt enkelt dina beroenden för att börja använda de nya funktionerna.
- Processmodell: Uppdatera till Microsoft.Azure. WebJobs.Extensions.DurableTask version 3.0.0 eller senare.
- Isolerad medarbetarmodell: Uppdatera till Microsoft.Azure.Functions.Worker.Extensions.DurableTask version 1.2.0 eller senare.
Uppdatera till Azure Functions tilläggspaket version 4.22.0 eller senare.
Nedgradera kompatibilitet (v3.x till v2.x)
WebJobs.Extensions.DurableTask v3 använder en annan textkodning för Azure Storage SDK (Base64) jämfört med v2 (UTF-8). Om du behöver återgå från v3.x till v2.x använder du följande lägsta versioner för att säkerställa bakåtkompatibilitet:
Återgå till en tidigare version av tilläggspaketet än 4.22.0.
Stöd och underhåll av v2.x
WebJobs.Extensions.DurableTask v2.x fortsätter att ta emot säkerhetsuppdateringar och felkorrigeringar, vilket säkerställer att dina befintliga program förblir säkra och stabila. Alla nya funktioner och förbättringar läggs dock exklusivt till i v3.x. Därför bör du uppgradera till WebJobs.Extensions.DurableTask v3 så snart du kan för att dra nytta av de senaste funktionerna och de pågående förbättringarna.
Funktioner som introduceras i v2.x
Följande funktioner är tillgängliga i Durable Functions 2.x och senare på alla språk som stöds.
Anmärkning
Detaljerna för .NET API:et för in-process i det här avsnittet gäller inte för den isolerade arbetsmodellen. Vägledning för isolerade arbetare finns i översikten över Durable Functions isolerad process.
Varaktiga entiteter
Durable Functions stöder entity functions för att läsa och uppdatera små delar av tillståndet, så kallade durable entiteter. Precis som orchestrator-funktioner är entitetsfunktioner funktioner med en särskild utlösartyp, entitetsutlösare. Till skillnad från orkestreringsfunktioner har entitetsfunktioner inte några specifika kodbegränsningar. Entitetsfunktioner hanterar också tillstånd explicit i stället för att implicit representera tillstånd via kontrollflöde.
Mer information finns i artikeln om varaktiga entiteter .
Varaktigt HTTP
Durable Functions innehåller en Durable HTTP funktion som gör att du kan:
- Anropa HTTP-API:er direkt från orkestreringsfunktioner (med vissa dokumenterade begränsningar).
- Implementera automatisk HTTP 202-statussökning på klientsidan.
- Använd inbyggt stöd för Azure hanterade identiteter.
Mer information finns i artikeln HTTP-funktioner .
Migrera från 1.x till 2.x
Viktigt!
Version 1.x av Azure Functions-körningen når stödperiodens slut i september 2026. Om du fortfarande är på v1.x planerar du migreringen snart.
Det här avsnittet beskriver hur du migrerar din befintliga version 1.x Durable Functions till version 2.x för att dra nytta av de nya funktionerna.
Uppgradera Durable Functions-tillägget
Installera den senaste 2.x-versionen av Durable Functions-bindningstillägget i projektet.
Durable Functions 2.x är tillgängligt från och med version 2.x av Azure Functions-tilläggspaketet.
Pythonstöd i Durable Functions kräver Durable Functions 2.x eller senare.
Om du vill uppdatera tilläggspaketets version i projektet öppnar du host.json och uppdaterar extensionBundle avsnittet så att version 4.x ([4.*, 5.0.0)används).
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
Durable Functions 2.x är tillgängligt från och med version 2.x av Azure Functions-tilläggspaketet.
Om du vill uppdatera tilläggspaketets version i projektet öppnar du host.json och uppdaterar extensionBundle avsnittet så att version 4.x ([4.*, 5.0.0)används).
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
Anmärkning
Om Visual Studio Code inte visar rätt mallar när du har ändrat tilläggspaketets version, ladda om fönstret genom att köra kommandot Developer: Reload Window (Ctrl+R på Windows och Linux, Command+R på macOS).
Durable Functions 2.x är tillgängligt från och med version 2.x av Azure Functions-tilläggspaketet.
Om du vill uppdatera tilläggspaketets version i projektet öppnar du host.json och uppdaterar extensionBundle avsnittet så att version 4.x ([4.*, 5.0.0)används).
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
Uppdatera ditt .NET projekt så att det använder den senaste versionen av Durable Functions-bindningstillägget.
Mer information finns i Register Azure Functions binding extensions.
Uppdatera din Durable Functions-kod
Durable Functions 2.x introducerar flera icke-bakåtkompatibla ändringar. Durable Functions 1.x-program är inte kompatibla med Durable Functions 2.x utan kodändringar. I det här avsnittet visas några av de ändringar du måste göra när du uppgraderar dina version 1.x-funktioner till 2.x.
Host.json schema
Durable Functions 2.x använder ett nytt host.json schema. De viktigaste ändringarna från 1.x är:
-
"storageProvider"(och underavsnittet"azureStorage") för lagringsspecifik konfiguration. -
"tracing"för spårning och loggningskonfiguration. -
"notifications"(och"eventGrid"-underavsnittet) för konfiguration av meddelanden i Event Grid.
Mer information finns i referensdokumentationen för Durable Functions host.json.
Ändringar av standardnamnet för uppgiftshubben
I version 1.x, om ett aktivitetshubbnamn inte angavs i host.json, var standardvärdet "DurableFunctionsHub". I version 2.x härleds nu standardnamnet för aktivitetshubben från namnet på funktionsappen. Om du inte har angett något namn på aktivitetshubben när du uppgraderar till 2.x fungerar koden med en ny aktivitetshubb, och alla orkestreringar under flygning kommer inte längre att ha ett program som bearbetar dem. För att lösa detta problem kan du antingen uttryckligen ange aktivitetshubbens namn till standardvärdet för v1.x, "DurableFunctionsHub", eller så kan du följa vår vägledning om noll stilleståndstid för distribution för information om hur du hanterar störande ändringar i pågående orkestreringar.
Ändringar i offentliga gränssnitt i Durable Functions
I version 1.x har de olika objekten context som stöds av Durable Functions abstrakta basklasser som är avsedda att användas i enhetstestning. Som en del av Durable Functions 2.x ersätts dessa abstrakta basklasser med gränssnitt.
Följande tabell representerar de viktigaste ändringarna:
| 1.x | 2.x |
|---|---|
DurableOrchestrationClientBase |
IDurableOrchestrationClient eller IDurableClient |
DurableOrchestrationContext eller DurableOrchestrationContextBase |
IDurableOrchestrationContext |
DurableActivityContext eller DurableActivityContextBase |
IDurableActivityContext |
OrchestrationClientAttribute |
DurableClientAttribute |
Om en abstrakt basklass innehöll virtuella metoder har dessa virtuella metoder ersatts med tilläggsmetoder som definierats i DurableContextExtensions.
function.json ändringar
I Durable Functions 1.x använder orkestreringsklientbindningen en type av orchestrationClient. Version 2.x använder durableClient i stället.
Utlös händelseändringar
I Durable Functions 1.x resulterade anropet av raise event-API:et på en instans som inte existerade i ett tyst fel. Från och med 2.x resulterar höjning av en händelse till en obefintlig orkestrering i ett undantag.
Relaterat innehåll
- Migrera från pågående till isolerad arbetsmodell
- Översikt över Durable Functions
- Översikt över isolerad process för Durable Functions