Dela via


översikt över Durable Functions versioner

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 översiktsdokumentationen.

Nya funktioner i 2.x

I det här avsnittet beskrivs funktionerna i Durable Functions som läggs till i version 2.x.

Anteckning

Det här avsnittet gäller inte för Durable Functions i dotnet isolated worker. Mer information finns i översikten över isolerade funktioner i en isolerad process.

Varaktiga entiteter

I Durable Functions 2.x introducerade vi ett nytt begrepp för entitetsfunktioner.

Entitetsfunktioner definierar åtgärder för att läsa och uppdatera små delar av tillståndet, så kallade varaktiga entiteter. Precis som orchestrator-funktioner är entitetsfunktioner funktioner med en särskild utlösartyp, entitetsutlösare. Till skillnad från orchestrator-funktioner 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 .

Beständig HTTP

I Durable Functions 2.x introducerade vi en ny 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.
  • Inbyggt stöd för azure-hanterade identiteter.

Mer information finns i artikeln HTTP-funktioner .

Migrera från 1.x till 2.x

I det här avsnittet beskrivs hur du migrerar din befintliga version 1.x Durable Functions till version 2.x för att dra nytta av de nya funktionerna.

Uppgradera tillägget

Installera den senaste 2.x-versionen av Durable Functions-bindningstillägget i projektet.

JavaScript, Python och PowerShell

Durable Functions 2.x är tillgängligt från och med version 2.x av Azure Functions tilläggspaketet.

Python-stöd i Durable Functions kräver Durable Functions 2.x eller senare.

Om du vill uppdatera versionen av tilläggspaketet 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)"
    }
}

Anteckning

Om Visual Studio Code inte visar rätt mallar när du har ändrat tilläggets paketversion läser du in fönstret igen genom att köra kommandot Developer: Reload Window (Ctrl+R på Windows och Linux, Command+R på macOS).

Java

Durable Functions 2.x är tillgängligt från och med version 4.x av Azure Functions tilläggspaketet. Du måste använda Azure Functions 4.0-körningen för att köra Java-funktioner.

Om du vill uppdatera versionen av tilläggspaketet 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)"
    }
}

.NET

Uppdatera .NET-projektet så att det använder den senaste versionen av Durable Functions-bindningstillägget.

Mer information finns i Registrera Azure Functions bindningstillägg.

Uppdatera koden

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 som 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 underavsnittet "eventGrid" ) för Event Grid-meddelandekonfiguration.

Mer information finns i referensdokumentationen för Durable Functions host.json.

Standardnamnändringar för aktivitetshubben

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 kringgå detta kan du antingen uttryckligen ange namnet på aktivitetshubben till v1.x-standardvärdet "DurableFunctionsHub", eller så kan du följa vår distributionsvägledning med noll stilleståndstid för information om hur du hanterar icke-bakåtkompatibla ändringar för orkestreringar under flygning.

Ändringar i offentligt gränssnitt (endast.NET)

I version 1.x har de olika kontextobjekt som stöds av Durable Functions abstrakta basklasser som är avsedda att användas vid 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 av 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.

Skapa händelseändringar

I Durable Functions 1.x resulterade anrop av händelse-API:et för att skapa och ange en instans som inte fanns i ett tyst fel. Från och med 2.x resulterar upphöjning av en händelse till en obefintlig orkestrering i ett undantag.