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 DurableContextExtensions
definiá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 type
orchestrationClient
haszná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.