Durable Functions verziók áttekintése

Durable Functions a Azure Functions és az 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 az áttekintési dokumentációt.

Új funkciók a 2.x-ben

Ez a szakasz a 2.x verzióban hozzáadott Durable Functions funkcióit ismerteti.

Megjegyzés

Ez a szakasz nem vonatkozik a dotnet izolált feldolgozó Durable Functions. Ehhez tekintse meg a tartós függvények elkülönített folyamatának áttekintését.

Tartós entitások

A Durable Functions 2.x-ben bevezettünk egy új entitásfüggvény-fogalmat.

Az entitásfüggvények olyan műveleteket határoznak meg, amelyek a kis méretű állapotok, más néven tartós entitások olvasására és frissítésére szolgálnak. A vezénylőfüggvényekhez hasonlóan az entitásfüggvények is speciális eseményindító típusú függvények, entitás-eseményindítók. A vezénylőfüggvényektől eltérően az entitásfüggvények nem rendelkeznek konkrét kódkényszerekkel. Az entitásfüggvények explicit módon is kezelik az állapotot, nem pedig implicit módon képviselik 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

A Durable Functions 2.x-ben bevezettünk egy új Durable HTTP-funkciót, amely lehetővé teszi a következőket:

  • HTTP API-kat közvetlenül a vezénylési függvényekből hívhat meg (néhány dokumentált korlátozással).
  • Implementálhatja az automatikus ügyféloldali HTTP 202-állapot-lekérdezést.
  • Beépített támogatás az Azure Managed Identityeshez.

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

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

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

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

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

JavaScript, Python és PowerShell

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

A Python Durable Functions támogatása 2.x vagy újabb Durable Functions igényel.

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

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

Megjegyzés

Ha a 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 (Windows és Linux ctrl+R , Command +R macOS rendszeren) paranccsal.

Java

Durable Functions 2.x a Azure Functions bővítménycsomag 4.x-es verziójától kezdve érhető el. A Java-függvények végrehajtásához a Azure Functions 4.0-s futtatókörnyezetet kell használnia.

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

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

.NET

Frissítse a .NET-projektet a Durable Functions kötések bővítmény legújabb verziójának használatára.

További információért lásd: Azure Functions kötésbővítmények regisztrálása.

A 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 Durable Functions 2.x-zel kódmódosítások nélkül. Ez a szakasz felsorol néhány módosítást, amelyek az 1.x verziójú függvények 2.x-re való frissítésekor kell elvégezni.

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árterület-specifikus konfigurációhoz.
  • "tracing" a nyomkövetési és naplózási konfigurációhoz.
  • "notifications" (és az "eventGrid" Event Grid értesítési konfigurációjának alszakasza).

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

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

Az 1.x verzióban, ha a feladatközpont neve nem lett megadva a host.json fájlban, az alapértelmezés szerint a "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özpontnevet a 2.x verzióra való frissítéskor, a kód új feladatközponttal fog üzemelni, és a repülés közbeni vezénylések többé nem fogják feldolgozni azokat. Ennek megkerüléséhez explicit módon beállíthatja a feladatközpont nevét a "DurableFunctionsHub" v1.x alapértelmezett értékére, vagy a működés közbeni vezénylések kompatibilitástörő változásainak kezelésével kapcsolatos részletekért kövesse a nulla állásidőre vonatkozó üzembe helyezési útmutatót .

Nyilvános felület változásai (csak.NET esetén)

Az 1.x verzióban a Durable Functions által támogatott különböző környezeti 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.

A következő táblázat a fő módosítá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 bővítménymetelyek váltották fel: .

function.json változások

Az 1.x Durable Functions a vezénylési ügyfélkötés a következőt typeorchestrationClienthasználja: . A 2.x-es verziót használja durableClient helyette.

Eseményváltozások emelése

Az Durable Functions 1.x-ben a raise event API meghívása és egy nem létező példány megadása csendes hibát eredményezett. A 2.x-től kezdődően egy esemény nem létező vezénylésre való emelése kivételt eredményez.