Co je rozšíření Durable Functions?

Dokončeno

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.

    Diagram znázorňující model řetězení funkcí

  • 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.

    Diagram znázorňující vzorek ventilátoru nebo ventilátoru

  • 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.

    Diagram znázorňující asynchronní vzor rozhraní HTTP API

  • 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.

    Diagram znázorňující vzor monitorování

  • 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.

    Diagram znázorňující vzor lidské interakce

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

Kontrola znalostí

1.

Co je rozšíření Durable Functions?

2.

Které z následujících tvrzení nejlépe popisuje roli funkce orchestrátoru v pracovním postupu?

3.

Která z následujících možností nejlépe vysvětluje, proč vzor aplikace lidské interakce těží z Durable Functions?