Přehled Durable Functions verzí

Durable Functions je rozšíření Azure Functions a Azure WebJobs, které umožňuje psát stavové funkce v bezserverovém prostředí. Toto rozšíření za vás spravuje stav, kontrolní body a restartování. Pokud Durable Functions ještě neznáte, projděte si přehledovou dokumentaci.

Nové funkce ve verzi 2.x

Tato část popisuje funkce Durable Functions, které jsou přidány ve verzi 2.x.

Poznámka

Tato část se nevztahuje na Durable Functions v izolovaném pracovním procesu dotnet. K tomu se podívejte na přehled izolovaných procesů s trvalými funkcemi.

Odolné entity

V Durable Functions 2.x jsme představili nový koncept funkcí entit.

Funkce entit definují operace pro čtení a aktualizaci malých částí stavu, které se označují jako odolné entity. Podobně jako funkce orchestrátoru jsou funkce entit funkce se speciálním typem triggeru, triggerem entity. Na rozdíl od funkcí orchestrátoru nemají funkce entit žádná specifická omezení kódu. Funkce entit také spravují stav explicitně, nikoli implicitně představují stav prostřednictvím toku řízení.

Další informace najdete v článku o trvalých entitách .

Odolný protokol HTTP

V Durable Functions 2.x jsme představili novou funkci Durable HTTP, která umožňuje:

  • Volání rozhraní HTTP API přímo z orchestračních funkcí (s některými zdokumentovanými omezeními).
  • Implementujte automatické dotazování stavu HTTP 202 na straně klienta.
  • Integrovaná podpora spravovaných identit Azure

Další informace najdete v článku o funkcích HTTP .

Migrace z verze 1.x na 2.x

Tato část popisuje, jak migrovat stávající verzi 1.x Durable Functions na verzi 2.x, abyste mohli využívat nové funkce.

Upgrade rozšíření

Nainstalujte do projektu nejnovější verzi rozšíření Durable Functions vazeb 2.x.

JavaScript, Python a PowerShell

Durable Functions 2.x je k dispozici od verze 2.x sady rozšíření Azure Functions.

Podpora Pythonu v Durable Functions vyžaduje Durable Functions 2.x nebo vyšší.

Pokud chcete aktualizovat verzi sady rozšíření v projektu, otevřete soubor host.json a aktualizujte extensionBundle oddíl tak, aby používal verzi 4.x ([4.*, 5.0.0)).

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

Poznámka

Pokud Visual Studio Code po změně verze sady rozšíření nezobrazuje správné šablony, znovu načtěte okno spuštěním příkazu Vývojář: Znovu načíst okno (Ctrl+R ve Windows a Linuxu, Command+R v macOS).

Java

Durable Functions 2.x je k dispozici od verze 4.x sady rozšíření Azure Functions. Ke spouštění funkcí Javy musíte použít modul runtime Azure Functions 4.0.

Pokud chcete aktualizovat verzi sady rozšíření v projektu, otevřete soubor host.json a aktualizujte extensionBundle oddíl tak, aby používal verzi 4.x ([4.*, 5.0.0)).

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

.NET

Aktualizujte projekt .NET tak, aby používal nejnovější verzi rozšíření Durable Functions vazeb.

Další informace najdete v tématu Registrace rozšíření vazeb Azure Functions.

Aktualizace kódu

Durable Functions 2.x přináší několik zásadních změn. Durable Functions aplikace 1.x nejsou kompatibilní s Durable Functions 2.x bez změn kódu. V této části jsou uvedeny některé změny, které musíte provést při upgradu funkcí verze 1.x na verzi 2.x.

Schéma Host.json

Durable Functions 2.x používá nové schéma host.json. Mezi hlavní změny verze 1.x patří:

  • "storageProvider" (a pododdíl) "azureStorage" pro konfiguraci specifickou pro úložiště.
  • "tracing" pro konfiguraci trasování a protokolování.
  • "notifications" (a pododdíl "eventGrid" ) pro konfiguraci oznámení Event Gridu.

Podrobnosti najdete v referenční dokumentaci k souboru Durable Functions host.json.

Změny výchozího názvu centra úloh

Pokud ve verzi 1.x nebyl název centra úloh zadán v souboru host.json, ve výchozím nastavení byl nastaven na DurableFunctionsHub. Ve verzi 2.x se výchozí název centra úloh odvozuje od názvu aplikace funkcí. Z tohoto důvodu platí, že pokud jste při upgradu na verzi 2.x nezadali název centra úloh, bude váš kód fungovat s novým centrem úloh a všechny orchestrace za provozu už nebudou mít aplikaci, která je bude zpracovávat. Tento problém můžete obejít tak, že buď explicitně nastavíte název centra úloh na výchozí hodnotu DurableFunctionsHub v1.x, nebo můžete postupovat podle pokynů k nasazení s nulovými výpadky , kde najdete podrobnosti o tom, jak zpracovat změny způsobující chybu pro orchestrace za provozu.

Změny veřejného rozhraní (jenom .NET)

Ve verzi 1.x mají různé kontextové objekty podporované Durable Functions abstraktní základní třídy určené pro testování částí. V rámci Durable Functions 2.x jsou tyto abstraktní základní třídy nahrazeny rozhraními.

Hlavní změny jsou uvedené v následující tabulce:

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

V případě, že abstraktní základní třída obsahovala virtuální metody, byly tyto virtuální metody nahrazeny rozšiřujícími metodami definovanými v DurableContextExtensionsnástroji .

změny souboru function.json

V Durable Functions 1.x používá klientská vazba orchestrace hodnotu typeorchestrationClient. Verze 2.x místo toho používá durableClient .

Vyvolání změn událostí

V Durable Functions 1.x vedlo volání rozhraní API pro vyvolání událostí a zadání instance, která neexistovala, k tichému selhání. Od verze 2.x vyvolání události na neexistující orchestraci způsobí výjimku.