Durable Functions verziók és migrálási útmutató

Durable Functions a Azure Functions és Azure WebJobs bővítménye, amellyel állapotalapú függvényeket írhat kiszolgáló nélküli környezetben. A bővítmény automatikusan kezeli az állapotokat, az ellenőrzőpontokat és az újraindításokat. Ha még nem ismeri a Durable Functions, tekintse meg a overview dokumentációját.

Verzió összefoglalása

Változat Status Főbb változások
v3.x Aktuális (ajánlott) Frissített Azure Storage SDK, jobb költséghatékonyság, kódmódosítás nélkül frissíthető a 2.x-ről.
v2.x Karbantartás (csak biztonsági és hibajavítások) Megbízható entitások, Megbízható HTTP
v1.x Támogatás megszűnése 2026. szeptember Legacy

A v3.x újdonságai

A Microsoft.Azure. A WebJobs.Extensions.DurableTask v3 csomag (a következő szakaszokban WebJobs.Extensions.DurableTask néven) az aktuálisan ajánlott verzió. A v2.x-ről való frissítéshez nincs szükség kódmódosításra – csak a csomagfüggőségeket kell frissítenie. Ez a frissítés csak a folyamatban lévő modellt használó Durable C#-alkalmazásokat futtató ügyfelek számára jelent kompatibilitástörő változást.

Note

A Durable Functions .NET folyamatfüggetlen csomag, a Microsoft.Azure.Functions.Worker.Extensions.DurableTask, a Microsoft.Azure.WebJobs.Extensions.DurableTaskot használja alapul szolgáló szerelvényként. Ennek következtében ez a frissítés a Microsoft.Azure.Functions.Worker.Extensions.DurableTask-ra is vonatkozik, a 1.2.x verziótól kezdve.

Frissített Azure Storage SDK

Alapértelmezés szerint Durable Functions Azure Storage tárterületként használja az alkalmazás állapotának tartós mentéséhez. A WebJobs.Extensions.DurableTask v3-ban a Azure Storage háttérrendszer a Azure Storage SDK-k legújabb verzióinak használatára lett frissítve: Azure. Data.Tables, Azure. Storage.Blobs és Azure. Storage.Queues. Ezek az SDK-k fokozott támogatást nyújtanak a felügyelt identitáshoz, jobb teljesítményt, hatékonyabb adatkezelést és nagyobb biztonságot nyújtanak a v2.x-ben használt örökölt Microsoft.Azure.Storage.* csomagokhoz képest.

Továbbfejlesztett költséghatékonyság (a Azure Storage szolgáltató számára)

A Azure Storage háttérrendszerben a Partíciókezelő feladata a partitions/control queues elosztása a feldolgozók között. A WebJobs.Extensions.DurableTask v3 csomag alapértelmezés szerint a Partition Manager V3-at használja, amely egy új kialakítás, amely Azure Táblák használatával kezeli a partíció-hozzárendeléseket Azure Blob-bérletek helyett. Ez a kialakítás jelentősen csökkentheti a tárolási költségeket, miközben megkönnyíti a hibakeresést. A Partition Manager V3 használata esetén a tárfiókban létrejön egy új, névvel ellátott Partitionstábla, amely lehetővé teszi a partícióadatok egyszerű ellenőrzését.

A Azure Functions v1-futtatókörnyezet támogatása megszűnt

A WebJobs.Extensions.DurableTask v3 már nem támogatja az Azure Functions futtatókörnyezet 1.x-es verzióját, amelynek támogatása 2026 szeptemberében ér véget. Ha kénytelen a Functions futtatókörnyezet 1-es verzióját használni, kérjük, hogy a Durable Functions bővítmény v2.11.0-nál alacsonyabb verzióját használja. Ne feledje, hogy amikor az ütemezett támogatás megszűnik, Durable Functions a futtatókörnyezet 1-es verziójának támogatását is elveti.

.NET futtatókörnyezeti célfrissítés

A WebJobs.Extensions.DurableTask v3 .NET Core 3.1-ről .NET 6-ra frissíti a cél futtatókörnyezetet, így jobb teljesítményt és jobb kompatibilitást biztosít a modern .NET funkciókkal és kódtárakkal. Ez a frissítés igazodik a Azure Functions bővítménycsomagok jövőbeli kiadásaihoz.

Migrálás v2.x-ről v3.x-be

A v2.x-ről v3.x-re való migráláshoz nem szükséges kódmódosítás – egyszerűen frissítse a függőségeket az új funkciók használatának megkezdéséhez.

Frissítsen Azure Functions bővítménycsomag 4.22.0 vagy újabb verziójára.

Lefelé kompatibilitás (v3.x-ről v2.x-re)

A WebJobs.Extensions.DurableTask v3 a Azure Storage SDK -hoz (Base64) eltérő szövegkódolást használ a 2-es verzióhoz képest (UTF-8). Ha vissza kell térnie a v3.x-ről a v2.x-re, használja a következő minimális verziókat a visszamenőleges kompatibilitás biztosításához:

  • Folyamatmodell:v2.13.5 vagy újabb.
  • Isolated worker model:v1.1.5 vagy újabb (ha visszaáll a v1.2.x vagy annál újabb verzióról).

Térjen vissza a bővítménycsomag 4.22.0-snál korábbi verziójára.

A v2.x támogatása és karbantartása

A WebJobs.Extensions.DurableTask v2.x továbbra is megkapja a biztonsági frissítéseket és hibajavításokat, biztosítva, hogy a meglévő alkalmazások biztonságosak és stabilak maradjanak. Az összes új funkció és fejlesztés azonban kizárólag a v3.x-hez lesz hozzáadva. Emiatt a WebJobs.Extensions.DurableTask v3 verzióra kell frissítenie, amint kihasználhatja a legújabb képességeket és a folyamatban lévő fejlesztéseket.

A 2.x verzióban bevezetett funkciók

Az alábbi funkciók Durable Functions 2.x és újabb verziókban érhetők el az összes támogatott nyelven.

Note

A .NET folyamatban lévő API-részletek ebben a szakaszban nem vonatkoznak az izolált feldolgozói modellre. Az izolált feldolgozói útmutatásért tekintse meg az Durable Functions izolált folyamatok áttekintését.

Tartós entitások

Durable Functions támogatja a entitásfüggvényeket kis állapotrészletek olvasásához és frissítéséhez, az úgynevezett tartós entitások. A vezénylő függvényekhez hasonlóan az entitásfüggvények is speciális triggertípusú függvények, entitás-eseményindítók. A vezénylő függvényekkel ellentétben az entitásfüggvények nem rendelkeznek konkrét kódkorlátozásokkal. Az entitásfüggvények explicit módon is kezelik az állapotot, nem pedig implicit módon jelölik az állapotot a vezérlési folyamaton keresztül.

További információért tekintse meg a tartós entitásokról szóló cikket.

Tartós HTTP

Durable Functions tartalmaz egy Durable HTTP funkciót, amely lehetővé teszi a következőket:

  • HTTP API-k meghívása közvetlenül a vezénylési függvényekből (néhány dokumentált korlátozással).
  • Automatikus ügyféloldali HTTP 202-állapot-lekérdezés implementálása.
  • Használja a beépített támogatást az Azure Managed Identities-hez.

További információkért tekintse meg a HTTP-szolgáltatásokról szóló cikket.

Migrálás 1.x-ről 2.x-re

Important

A Azure Functions futtatókörnyezet 1.x-es verziója megszűnik a támogatás September 2026. Ha továbbra is az 1.x verziót használja, tervezze meg a migrálást.

Ez a szakasz azt ismerteti, hogyan migrálhatja a meglévő 1.x Durable Functions a 2.x verzióra az új funkciók előnyeinek kihasználásához.

A Durable Functions bővítmény frissítése

Telepítse a Durable Functions kötések bővítmény legújabb 2.x verzióját a projektben.

Durable Functions 2.x a Azure Functions bővítménycsomag 2.x-es verziójától kezdve érhető el.

Python Durable Functions támogatásához 2.x vagy újabb Durable Functions szükséges.

A bővítménycsomag verziójának frissítéséhez nyissa meg a host.json, és frissítse a szakaszt a extensionBundle 4.x ([4.*, 5.0.0)) verzió használatára.

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

Durable Functions 2.x a Azure Functions bővítménycsomag 2.x-es verziójától kezdve érhető el.

A bővítménycsomag verziójának frissítéséhez nyissa meg a host.json, és frissítse a szakaszt a extensionBundle 4.x ([4.*, 5.0.0)) verzió használatára.

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

Note

Ha Visual Studio Code nem jeleníti meg a megfelelő sablonokat a bővítménycsomag verziójának módosítása után, töltse be újra az ablakot a Developer: Reload Window parancs futtatásával (Ctrl+R Windows és Linux rendszeren, Command+R macOS rendszeren).

Durable Functions 2.x a Azure Functions bővítménycsomag 2.x-es verziójától kezdve érhető el.

A bővítménycsomag verziójának frissítéséhez nyissa meg a host.json, és frissítse a szakaszt a extensionBundle 4.x ([4.*, 5.0.0)) verzió használatára.

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

A Durable Functions kód frissítése

Durable Functions 2.x számos kompatibilitástörő változást vezet be. Durable Functions 1.x alkalmazások nem kompatibilisek a Durable Functions 2.x verzióval kódmódosítások nélkül. Ez a szakasz felsorol néhány módosítást, amit az 1.x-es verziójú függvények 2.x-re való frissítésekor végre kell hajtania.

Host.json séma

Durable Functions 2.x egy új host.json sémát használ. Az 1.x fő változásai a következők:

  • "storageProvider" (és az "azureStorage" alszakasz) a tárolóspecifikus konfigurációhoz.
  • "tracing" nyomkövetési és naplózási konfigurációhoz.
  • "notifications" (az "eventGrid" alszakaszával együtt) az Event Grid értesítési konfigurációjához.

Részletekért tekintse meg a Durable Functions host.json referenciadokumentációt.

Alapértelmezett tevékenységközpont-névváltozások

Az 1.x verzióban, ha a tevékenységközpont neve nem volt megadva a host.json-ban, akkor az alapértelmezés szerint "DurableFunctionsHub" volt. A 2.x verzióban az alapértelmezett feladatközpont neve mostantól a függvényalkalmazás nevéből származik. Emiatt, ha nem adott meg feladatközpont nevet a 2.x verzióra való frissítéskor, a kód új feladatközponttal fog működni, és az összes folyamatban lévő vezérlésnél már nem lesz alkalmazás, amely azt feldolgozza. Ennek megkerüléséhez explicit módon beállíthatja a feladathub nevét a "DurableFunctionsHub" v1.x alapértelmezett nevére, vagy a futás közbeni orkestrációkat érintő kompatibilitástörő változások kezelésének részleteiért kövesse a leállási idő nélküli üzembe helyezési útmutatót.

A nyilvános felület változásai a Durable Functions

Az 1.x verzióban a Durable Functions által támogatott különböző kontext objektumok absztrakt alaposztályokkal rendelkeznek, amelyek az egységteszteléshez használhatók. A 2.x Durable Functions részeként ezeket az absztrakt alaposztályokat interfészek váltják fel.

Az alábbi táblázat a főbb változásokat mutatja be:

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

Abban az esetben, ha egy absztrakt alaposztály virtuális metódusokat tartalmazott, ezeket a virtuális metódusokat a következőben DurableContextExtensionsdefiniált kiterjesztési metódusok helyettesítették.

function.json módosítások

Az 1.x-es Durable Functions vezénylési klienskötése használ egy type a orchestrationClient közül. A 2.x-es verziót használja durableClient helyette.

Eseményváltozások kezdeményezése

A Durable Functions 1.x-ben a raise event API hívása és egy nem létező példány megadása láthatatlan hibát okozott. 2.x-től kezdve, ha egy eseményt nem létező orkesztációra indítunk, az kivételt eredményez.