Typy a funkce Durable Functions
Durable Functions je rozšíření azure Functions. Durable Functions můžete použít k stavové orchestraci provádění funkcí. Odolná aplikace funkcí je řešení, které se skládá z různých funkcí Azure. Funkce můžou hrát různé role v orchestraci trvalých funkcí.
Ve službě Azure Functions jsou v současné době čtyři typy trvalých funkcí: aktivita, orchestrátor, entita a klient. Zbytek této části obsahuje další podrobnosti o typech funkcí, které jsou součástí orchestrace.
Funkce orchestratoru
Funkce orchestratoru popisují způsob provádění akcí a pořadí provádění akcí. Funkce orchestratoru popisují orchestraci v kódu (C# nebo JavaScript), jak je znázorněno ve vzorech aplikace Durable Functions. Orchestrace může mít mnoho různých typů akcí, včetně funkcí aktivit, dílčích orchestrací, čekání na externí události, HTTP a časovačů. Funkce orchestratoru 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 zápis kódu. Kód funkce orchestrátoru musí být deterministický. Pokud tyto požadavky na determinismus nesplníte, může to způsobit, že se funkce orchestrátoru nespustí správně. Podrobné informace o těchto požadavcích a o tom, jak je obejít, najdete v tématu omezení kódu .
Podrobnější informace o funkcích orchestrátoru a jejich funkcích najdete v článku Durable Orchestrations .
Funkce aktivit
Funkce aktivit jsou základní jednotkou práce v orchestraci trvalých funkcí. Funkce aktivit jsou funkce a úlohy, které jsou orchestrovány v procesu. Můžete například vytvořit funkci orchestrátoru pro zpracování objednávky. Mezi úkoly patří kontrola inventáře, účtování zákazníka a vytvoření zásilky. Každý úkol by byl samostatnou funkcí aktivity. Tyto funkce aktivit se můžou spouštět sériově, paralelně nebo některé kombinace obou.
Na rozdíl od funkcí orchestrátoru nejsou funkce aktivit omezeny v typu práce, kterou v nich můžete provádět. Funkce aktivit se často používají k volání sítě 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 se každá volaná funkce aktivity spustí alespoň jednou během provádění orchestrace.
Poznámka:
Vzhledem k tomu, že funkce aktivit zaručují alespoň jednou spuštění, doporučujeme, abyste svou logiku funkce aktivity vždy, když je to možné, idempotentní .
Pomocí triggeru aktivity definujte funkci aktivity. Funkce .NET přijímají DurableActivityContext
jako parametr. Aktivační událost 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 můžou mít předané pouze jednu hodnotu. Pokud chcete předat více hodnot, musíte použít řazené kolekce členů, matice 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 trvalé entity. Podobně jako funkce orchestrátoru jsou funkce entit se speciálním typem triggeru, triggerem entity. Lze je také vyvolat z klientských funkcí nebo z funkcí orchestrátoru. Na rozdíl od funkcí orchestrátoru nemají funkce entity žádná specifická omezení kódu. Funkce entit také explicitně spravují stav místo implicitního znázornění stavu prostřednictvím toku řízení.
Poznámka:
Funkce entit a související funkce jsou k dispozici pouze v Durable Functions 2.0 a vyšší.
Další informace o funkcích entit najdete v článku Durable Entities .
Klientské funkce
Funkce orchestratoru se aktivují vazbou aktivační události orchestrace a funkce entit se aktivují vazbou triggeru entity. Obě tyto triggery fungují tak, že reagují na zprávy, které se začtou do centra úloh. Primárním způsobem doručování těchto zpráv je použití vazby klienta orchestrátoru nebo vazby klienta entity z klientské funkce. Libovolnou ne orchestratorovou funkcí může být klientská funkce. Orchestrátor můžete například aktivovat z funkce aktivované protokolem HTTP, funkce aktivované centrem událostí Azure atd. To dělá funkci klientskou funkcí , je její použití odolné výstupní vazby klienta.
Poznámka:
Na rozdíl od jiných typů funkcí nelze funkce orchestrátoru a entity 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 klientskou funkci , která v rámci implementace spouští orchestrátor nebo funkci entity. Pro nejjednodušší testovací prostředí se doporučuje ruční aktivační funkce.
Kromě aktivace funkcí orchestrátoru nebo entity je možné použít trvalou vazbu klienta k interakci se spuštěnými orchestracemi a entitami. Orchestrace se například dají dotazovat, ukončit a můžou mít události vyvolané na ně. 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 C#, JavaScriptu, Pythonu, PowerShellu nebo Javě.