Co je rozšíření Durable Functions?
Durable Functions umožňuje implementovat složité stavové funkce v bezserverovém prostředí.
V ukázkovém scénáři se vaše společnost v současné době řídí procesem ručního schvalování návrhů návrhu projektu. Tento proces má několik kroků a doba trvání jednotlivých kroků v procesu se může lišit. Implementace interního automatizovaného procesu je složitá a nákladná. Koordinace jednotlivých kroků je náročná. Navíc musíte být schopni začlenit do pracovního postupu vlastní logiku.
V této lekci zjistíte informace o výhodách rozšíření Durable Functions. Seznámíte se s různými typy funkcí a klíčovými koncepty souvisejícími s Durable Functions.
Durable Functions
Durable Functions je rozšíření služby Azure Functions. Zatímco Azure Functions funguje v bezstavovém prostředí, Durable Functions může zachovat stav mezi voláními funkcí. Tento přístup umožňuje zjednodušit složité stavové spouštění v bezserverovém prostředí.
Durable Functions se škáluje podle potřeby a poskytuje nákladově efektivní způsob implementace složitých pracovních postupů v cloudu. Mezi výhody použití Durable Functions patří:
Umožňují psát kód řízený událostmi. Odolná funkce může asynchronně čekat na jednu nebo více externích událostí a pak provádět řadu úloh v reakci na tyto události.
Funkce můžete zřetězit. Můžete implementovat běžné vzory, jako jsou ventilátory nebo ventilátory, které používají jednu funkci k paralelnímu vyvolání ostatních, a pak kumulují výsledky.
Můžete orchestrovat a koordinovat funkce a určit pořadí, ve kterém se mají funkce spouštět.
Stav se spravuje za vás. Abyste uložili informace o stavu pro dlouhotrvající funkci, nemusíte psát vlastní kód.
Durable Functions umožňuje definovat stavové pracovní postupy pomocí funkce orchestrace. Funkce orchestrace poskytuje následující další výhody:
Pracovní postupy můžete definovat v kódu. Nemusíte psát popis JSON nebo používat nástroj pro návrh pracovního postupu.
Funkce lze volat synchronně i asynchronně. Výstup z volaných funkcí se ukládá místně do proměnných a používá se v následných voláních funkcí.
Azure kontroluje průběh funkce automaticky, když funkce čeká. Azure se může rozhodnout funkci dehydrovat a uložit její stav, zatímco funkce čeká na zachování prostředků a snížení nákladů. Jakmile se funkce znovu spustí, Azure jí stav vrátí a obnoví.
Typy funkcí
Můžete použít tři typy trvalých funkcí: Klient, Orchestrator a Aktivita.
Funkce klienta jsou vstupním bodem pro vytvoření instance orchestrace Durable Functions. Mohou běžet v reakci na událost z mnoha zdrojů, jako je například nový příchozí požadavek HTTP, zpráva publikovaná ve frontě zpráv, příchozí událost ve streamu událostí. Psát je můžete v libovolném podporovaném jazyce.
Funkce orchestratoru popisují, jak se akce spouštějí, a pořadí jejich spuštění. Logiku orchestrace píšete v kódu (C# nebo JavaScript).
Funkce aktivit jsou základními jednotkami práce v orchestraci Durable Functions. Funkce aktivity obsahuje skutečnou práci provedenou orchestrovanými úkoly.
Vzory aplikací
Rozšíření Durable Functions můžete použít k implementaci mnoha běžných vzorů pracovních postupů. Mezi tyto vzory patří:
Zřetězení funkcí: V tomto vzoru pracovní postup provede posloupnost funkcí v zadaném pořadí. Výstup jedné funkce se použije na vstup další funkce v sekvenci. Výstup konečné funkce slouží k vygenerování výsledku.
Ventilátory/ventilátory v: Tento model spouští několik paralelních funkcí a čeká na dokončení všech funkcí. Výsledky paralelních spuštění můžete agregovat nebo je použít k výpočtu konečného výsledku.
Asynchronní rozhraní HTTP API: Tento model řeší problém koordinace stavu dlouhotrvajících operací s externími klienty. Volání HTTP může aktivovat dlouhotrvající akci a pak přesměrovat klienta na koncový bod stavu. Klient může zjistit, kdy se operace dokončí, pomocí cyklického dotazování tohoto koncového bodu.
Monitorování: Tento model implementuje opakovaný proces v pracovním postupu, pravděpodobně hledá změnu ve stavu. Tento vzor byste mohli například použít k cyklickému dotazování, dokud nebudou splněny konkrétní podmínky.
Lidská interakce: Tento model kombinuje automatizované procesy, které zahrnují také určitou lidskou interakci. Ruční proces uvnitř automatizovaného procesu je komplikovaný, protože lidé nejsou tak dostupní a responzivní jako většina počítačů. Lidskou interakci můžete začlenit pomocí časových limitů a logiky kompenzace, která se spustí, pokud se člověk v zadané době odezvy nepodaří správně pracovat. Proces schválení je příkladem procesu, který zahrnuje lidskou interakci.
Porovnání s Logic Apps
Durable Functions i Logic Apps jsou služby Azure, které umožňují provádění úloh bez serveru. Azure Durable Functions slouží jako výkonná možnost výpočtových prostředků bez serveru pro spuštění vlastní logiky. Azure Logic Apps je vhodnější pro integraci služeb a komponent Azure. K vytvoření složitých orchestrací můžete použít kteroukoli technologii. S Azure Durable Functions vyvíjíte orchestrace zápisem kódu a pomocí rozšíření Durable Functions. S Logic Apps vytváříte orchestrace pomocí návrhové plochy nebo úpravy konfiguračních souborů.
Následující tabulka uvádí některé klíčové rozdíly mezi Azure Durable Functions a Azure Logic Apps.
Úloha | Azure Durable Functions | Azure Logic Apps |
---|---|---|
Vývoj | Založeno na kódu (imperativní) | Založeno na návrhu (deklarativní) |
Připojení | Zhruba tucet předdefinovaných typů vazeb. Můžete psát kód pro vlastní vazby. | Rozsáhlá kolekce konektorů. Enterprise Integration Pack pro B2B. Můžete také vytvářet vlastní konektory. |
Akce | Každá aktivita je funkce Azure Functions. Zapisujete kód pro funkce aktivit. | Rozsáhlá kolekce předdefinovaných akcí. Můžete integrovat vlastní logiku pomocí vlastních konektorů. |
Sledování | Azure Application Insights | Web Azure Portal, protokoly Azure Monitor |
Správa | REST API, PowerShell, Visual Studio | Azure Portal, REST API, PowerShell, Visual Studio, rozšíření Visual Studio Code |