Share via


Durable Functions típusok és funkciók

Durable Functions a Azure Functions kiterjesztése. A Durable Functions a függvényvégrehajtás állapotalapú vezénylésére használható. A tartós függvényalkalmazás olyan megoldás, amely különböző Azure-függvényekből áll. A függvények különböző szerepköröket játszhatnak a tartós függvények vezénylésében.

Jelenleg négy tartós függvénytípus létezik a Azure Functions: tevékenység, vezénylő, entitás és ügyfél. A szakasz többi része részletesebben ismerteti a vezénylésben részt vevő függvények típusait.

Orchestrator-függvények

Az Orchestrator függvények ismertetik a műveletek végrehajtását és a műveletek végrehajtásának sorrendjét. Az Orchestrator függvények a vezénylést kódban (C# vagy JavaScript) írják le, ahogy az Durable Functions alkalmazásmintákban is látható. A vezénylés számos különböző művelettípust tartalmazhat, beleértve a tevékenységfüggvényeket, az alvezényléseket, a külső eseményekre való várakozást, a HTTP-t és az időzítőket. Az Orchestrator-függvények entitásfüggvényekkel is kommunikálhatnak.

Megjegyzés

Az Orchestrator-függvények normál kóddal vannak megírva, de szigorú követelmények vonatkoznak a kód megírására. Pontosabban az orchestrator függvénykódjának determinisztikusnak kell lennie. Ha nem követi ezeket a determinizmusi követelményeket, az a vezénylőfüggvények megfelelő futtatását okozhatja. Ezekről a követelményekről és azok megkerüléséről a kódkényszerekkel foglalkozó témakörben talál részletes információkat.

A vezénylői funkciókkal és azok funkcióival kapcsolatos részletesebb információkért tekintse meg a Tartós vezénylések című cikket.

Tevékenységfüggvények

A tevékenységfüggvények a tartós függvények vezénylésének alapvető munkaegységei. A tevékenységfüggvények a folyamatban vezényelt függvények és feladatok. Létrehozhat például egy vezénylőfüggvényt a sorrend feldolgozásához. A feladatok közé tartozik a leltár ellenőrzése, az ügyfél terhelése és egy szállítmány létrehozása. Minden tevékenység külön tevékenységfüggvény lenne. Ezek a tevékenységfüggvények sorozatosan, párhuzamosan vagy a kettő valamilyen kombinációjával hajthatók végre.

A vezénylőfüggvényekkel ellentétben a tevékenységfüggvények nem korlátozottak a bennük elvégezhető munka típusában. A tevékenységfüggvényeket gyakran használják hálózati hívások indítására vagy processzorigényes műveletek futtatására. A tevékenységfüggvények adatokat is vissza tudnak adni a vezénylő függvénynek. A Durable Task Framework garantálja, hogy az egyes hívott tevékenységfüggvények legalább egyszer végre lesznek hajtva a vezénylés végrehajtása során.

Megjegyzés

Mivel a tevékenységfüggvények csak legalább egyszer garantálják a végrehajtást, javasoljuk, hogy a tevékenységfüggvény logikai idempotense legyen, amikor csak lehetséges.

Tevékenységfüggvény definiálásához használjon tevékenység-eseményindítót. A .NET-függvények paraméterként kapják meg DurableActivityContext a függvényt. Az eseményindítót bármely más JSON-szerializálható objektumhoz is kötheti, hogy bemeneteket adjon a függvénynek. A JavaScriptben az objektum tulajdonságán keresztül érheti el a <activity trigger binding name> bemenetetcontext.bindings. A tevékenységfüggvények csak egyetlen értéket adhatnak át nekik. Több érték átadásához tupleseket, tömböket vagy összetett típusokat kell használnia.

Megjegyzés

A tevékenységfüggvényeket csak vezénylőfüggvényekből indíthatja el.

Entitásfüggvények

Az entitásfüggvények kisebb állapotok olvasására és frissítésére szolgáló műveleteket határoznak meg. Ezeket az állapotalapú entitásokat gyakran tartós entitásoknak nevezzük. A vezénylőfüggvényekhez hasonlóan az entitásfüggvények is speciális eseményindító típusú függvények, entitás-eseményindítók. Ügyfélfüggvényekből vagy vezénylőfüggvényekből is meghívhatók. A vezénylőfüggvényektől eltérően az entitásfüggvények nem rendelkeznek konkrét kódkényszerekkel. Az entitásfüggvények explicit módon is kezelik az állapotot, nem pedig implicit módon képviselik az állapotot a vezérlési folyamaton keresztül.

Megjegyzés

Az entitásfüggvények és a kapcsolódó funkciók csak a Durable Functions 2.0-s és újabb verziókban érhetők el.

Az entitásfüggvényekről további információt a Durable Entities (Tartós entitások ) című cikkben talál.

Ügyfélfüggvények

Az Orchestrator-függvényeket egy vezénylési eseményindító kötése aktiválja, az entitásfüggvényeket pedig egy entitás-eseményindító kötése aktiválja. Mindkét eseményindító úgy működik, hogy reagál a feladatközpontba beküldött üzenetekre. Az üzenetek kézbesítésének elsődleges módja egy vezénylő ügyfélkötés vagy egy entitásügyfél-kötés használata egy ügyfélfüggvényből. A nem vezénylő függvények lehetnek ügyfélfüggvények. Elindíthatja például a vezénylőt egy HTTP-aktivált függvényből, egy Azure Event Hub által aktivált függvényből stb. Ami egy függvényt ügyfélfüggvénysé tesz, az a tartós ügyfél kimeneti kötésének használata.

Megjegyzés

Más függvénytípusoktól eltérően a vezénylő- és entitásfüggvények nem aktiválhatók közvetlenül az Azure Portal gombjaival. Ha egy vezénylő- vagy entitásfüggvényt szeretne tesztelni az Azure Portalon, ehelyett egy olyan ügyfélfüggvényt kell futtatnia, amely a implementáció részeként elindít egy vezénylő- vagy entitásfüggvényt. A legegyszerűbb teszteléshez manuális triggerfüggvény használata ajánlott.

A vezénylő- vagy entitásfüggvények aktiválása mellett a tartós ügyfélkötés használható a futó vezénylések és entitások kezelésére. A vezénylések például lekérdezhetők, leállíthatók, és események hozhatók létre rajtuk. A vezénylések és entitások kezelésével kapcsolatos további információkért lásd a Példánykezelés című cikket.

Következő lépések

Első lépésként hozza létre az első tartós függvényt c#, JavaScript, Python, PowerShell vagy Java nyelven.