typy a funkce Durable Functions

Durable Functions je rozšíření Azure Functions. Durable Functions můžete použít ke stavové orchestraci provádění funkce. Odolná aplikace funkcí je řešení, které se skládá z různých funkcí Azure. Funkce můžou v orchestraci trvalých funkcí hrát různé role.

V současné době existují čtyři typy trvalých funkcí v Azure Functions: aktivita, orchestrátor, entita a klient. Zbývající část této části obsahuje další podrobnosti o typech funkcí zahrnutých do orchestrace.

Funkce orchestratoru

Funkce orchestratoru popisují, jak se akce spouštějí, a pořadí, ve kterém se akce spouštějí. Funkce orchestratoru popisují orchestraci v kódu (C# nebo JavaScript), jak je znázorněno ve vzorech Durable Functions aplikací. Orchestrace může obsahovat mnoho různých typů akcí, včetně funkcí aktivit, dílčích orchestrací, čekání na externí události, protokolu HTTP a časovačů. Funkce orchestrátoru můžou také pracovat s funkcemi entit.

Poznámka

Funkce orchestratoru se píšou pomocí běžného kódu, ale existují přísné požadavky na to, jak kód napsat. Konkrétně musí být kód funkce orchestrátoru deterministický. Nedodržení těchto požadavků na determinismus může způsobit selhání správného spuštění funkcí orchestrátoru. Podrobné informace o těchto požadavcích a jejich řešení najdete v tématu omezení kódu .

Podrobnější informace o funkcích orchestrátoru a jejich funkcích najdete v článku o orchestracích Durable .

Funkce aktivit

Funkce aktivity jsou základní jednotkou práce v orchestraci trvalých funkcí. Funkce aktivit jsou funkce a úlohy, které jsou v procesu orchestrovány. Můžete například vytvořit funkci orchestrátoru pro zpracování objednávky. Mezi úkoly patří kontrola zásob, účtování poplatků zákazníkovi a vytvoření dodávky. Každý úkol by byl samostatnou funkcí aktivity. Tyto funkce aktivity mohou být spouštěné sériově, paralelně nebo v kombinaci obojího.

Na rozdíl od funkcí orchestrátoru nejsou funkce aktivit omezeny typem práce, kterou s nimi můžete provádět. Funkce aktivit se často používají k síťovým voláním nebo spouštění operací náročných na procesor. Funkce aktivity může také vracet data zpět do funkce orchestrátoru. Durable Task Framework zaručuje, že každá volaná funkce aktivity se spustí alespoň jednou během provádění orchestrace.

Poznámka

Vzhledem k tomu, že funkce aktivit zaručují alespoň jedno provedení, doporučujeme nastavit idempotentní logiky funkce aktivity, kdykoli je to možné.

K definování funkce aktivity použijte trigger aktivity. Funkce .NET přijímají DurableActivityContext jako parametr . Trigger můžete také svázat s jakýmkoli jiným objektem serializovatelným ve formátu JSON, který funkci předá vstupy. V JavaScriptu můžete přistupovat ke vstupu prostřednictvím <activity trigger binding name> vlastnosti objektucontext.bindings. Funkce aktivit mohou mít předanou pouze jednu hodnotu. Chcete-li předat více hodnot, je nutné použít řazené kolekce členů, pole nebo komplexní typy.

Poznámka

Funkci aktivity můžete aktivovat pouze z funkce orchestrátoru.

Funkce entit

Funkce entit definují operace pro čtení a aktualizaci malých částí stavu. Tyto stavové entity často označujeme jako odolné entity. Podobně jako funkce orchestrátoru jsou funkce entit funkce se speciálním typem triggeru, tj. triggerem entity. Dají se také vyvolat z funkcí klienta nebo z funkcí orchestrátoru. Na rozdíl od funkcí orchestrátoru nemají funkce entit žádná specifická omezení kódu. Funkce entit také spravují stav explicitně, místo aby stav implicitně reprezentovala prostřednictvím toku řízení.

Poznámka

Funkce entit a související funkce jsou dostupné jenom v Durable Functions 2.0 a novějších.

Další informace o funkcích entit najdete v článku Durable Entities .

Funkce klienta

Funkce orchestrátoru se aktivují vazbou triggeru orchestrace a funkce entit se aktivují vazbou triggeru entity. Obě tyto triggery fungují tak, že reagují na zprávy, které jsou zaváděné do centra úloh. Primárním způsobem doručování těchto zpráv je použití klientské vazby orchestrátoru nebo vazby klienta entity z klientské funkce. Klientskou funkcí může být libovolná funkce, která není orchestrátorem. Orchestrátor můžete například aktivovat z funkce aktivované protokolem HTTP, funkce aktivované centrem událostí Azure atd. To, co dělá z funkce klientskou funkci , je její použití odolné výstupní vazby klienta.

Poznámka

Na rozdíl od jiných typů funkcí není možné orchestrátor a funkce entit aktivovat přímo pomocí tlačítek na webu Azure Portal. Pokud chcete otestovat funkci orchestrátoru nebo entity na webu Azure Portal, musíte místo toho spustit funkci klienta , která v rámci implementace spustí orchestrátor nebo funkci entity. Pro nejjednodušší testování se doporučuje funkce ruční aktivační události .

Kromě aktivace funkcí orchestrátoru nebo entity je možné k interakci se spuštěnými orchestracemi a entitami použít odolnou vazbu klienta . Například orchestrace mohou být dotazovány, ukončeny a mohou na ně být vyvolány události. Další informace o správě orchestrací a entit najdete v článku Správa instancí .

Další kroky

Začněte vytvořením první odolné funkce v jazycích C#, JavaScript, Python, PowerShell nebo Java.