Udostępnij za pośrednictwem


Typy i funkcje rozszerzenia Durable Functions

Durable Functions to rozszerzenie usługi Azure Functions. Rozszerzenia Durable Functions można używać do orkiestracji stanowej wykonywania funkcji. Aplikacja funkcji trwałej to rozwiązanie, które składa się z różnych funkcji platformy Azure. Funkcje mogą odgrywać różne role w orkiestracji funkcji trwałej.

Obecnie istnieją cztery trwałe typy funkcji w usłudze Azure Functions: działanie, orkiestrator, jednostka i klient. W pozostałej części tej sekcji bardziej szczegółowo o typach funkcji związanych z orkiestracją.

Funkcje programu Orchestrator

Funkcje programu Orchestrator opisują sposób wykonywania akcji i kolejność wykonywania akcji. Funkcje programu Orchestrator opisują aranżację w kodzie (C# lub JavaScript), jak pokazano w wzorcach aplikacji durable functions. Orkiestracja może mieć wiele różnych typów akcji, w tym funkcje działań, podaranżacje, oczekiwanie na zdarzenia zewnętrzne, http i czasomierze. Funkcje programu Orchestrator mogą również współdziałać z funkcjami jednostek.

Uwaga

Funkcje programu Orchestrator są pisane przy użyciu zwykłego kodu, ale istnieją ścisłe wymagania dotyczące sposobu pisania kodu. W szczególności kod funkcji orkiestratora musi być deterministyczny. Niepowodzenie przestrzegania tych wymagań determinizmu może spowodować, że funkcje orkiestratora nie będą działać poprawnie. Szczegółowe informacje na temat tych wymagań i sposobu ich obejścia można znaleźć w temacie ograniczenia kodu.

Aby uzyskać bardziej szczegółowe informacje na temat funkcji orkiestratora i ich funkcji, zobacz artykuł Durable orchestrations (Aranżacje durable).

Funkcje działania

Funkcje działania to podstawowa jednostka pracy w orkiestracji funkcji trwałej. Funkcje działania to funkcje i zadania, które są orkiestrowane w procesie. Na przykład możesz utworzyć funkcję orkiestratora w celu przetworzenia zamówienia. Zadania obejmują sprawdzanie zapasów, ładowanie klienta i tworzenie przesyłki. Każde zadanie będzie oddzielną funkcją działania. Te funkcje działania mogą być wykonywane szeregowo, równolegle lub niektóre kombinacje obu tych funkcji.

W przeciwieństwie do funkcji orkiestratora funkcje działania nie są ograniczone w typie pracy, którą można wykonać w nich. Funkcje działania są często używane do wykonywania wywołań sieciowych lub uruchamiania operacji intensywnie korzystających z procesora CPU. Funkcja działania może również zwracać dane z powrotem do funkcji orkiestratora. Struktura Durable Task Framework gwarantuje, że każda wywoływana funkcja działania zostanie wykonana co najmniej raz podczas wykonywania orkiestracji.

Uwaga

Ponieważ funkcje działania gwarantują co najmniej jednokrotne wykonanie, zalecamy, aby idempotentna logika funkcji działania zawsze, gdy jest to możliwe.

Użyj wyzwalacza działania, aby zdefiniować funkcję działania. Funkcje platformy .NET odbierają jako DurableActivityContext parametr. Wyzwalacz można również powiązać z dowolnym innym obiektem serializowalnym JSON, aby przekazać dane wejściowe do funkcji. W języku JavaScript możesz uzyskać dostęp do danych wejściowych za pośrednictwem <activity trigger binding name> właściwości obiektucontext.bindings . Funkcje działania mogą mieć tylko jedną wartość przekazaną do nich. Aby przekazać wiele wartości, należy użyć krotki, tablic lub typów złożonych.

Uwaga

Funkcję działania można wyzwolić tylko z funkcji orkiestratora.

Funkcje jednostki

Funkcje jednostki definiują operacje odczytu i aktualizowania małych fragmentów stanu. Te jednostki stanowe są często nazywane trwałymi jednostkami. Podobnie jak funkcje orkiestratora, funkcje jednostki to funkcje ze specjalnym typem wyzwalacza, wyzwalaczem jednostki. Mogą być również wywoływane z funkcji klienta lub z funkcji orkiestratora. W przeciwieństwie do funkcji orkiestratora funkcje jednostki nie mają żadnych określonych ograniczeń kodu. Funkcje jednostki zarządzają stanem jawnie, a nie niejawnie reprezentującym stan za pośrednictwem przepływu sterowania.

Uwaga

Funkcje jednostek i powiązane funkcje są dostępne tylko w rozszerzeniach Durable Functions 2.0 i nowszych.

Aby uzyskać więcej informacji na temat funkcji jednostek, zobacz artykuł Durable Entities (Trwałe jednostki ).

Funkcje klienta

Funkcje programu Orchestrator są wyzwalane przez powiązanie wyzwalacza orkiestracji, a funkcje jednostki są wyzwalane przez powiązanie wyzwalacza jednostki. Oba te wyzwalacze działają, reagując na komunikaty, które są w kolejce do centrum zadań. Podstawowym sposobem dostarczania tych komunikatów jest użycie powiązania klienta orkiestratora lub powiązania klienta jednostki z poziomu funkcji klienta. Każda funkcja niearanżatora może być funkcją klienta. Możesz na przykład wyzwolić orkiestrator z funkcji wyzwalanej przez protokół HTTP, funkcji wyzwalanej przez usługę Azure Event Hub itp. Funkcja, która sprawia, że funkcja kliencka korzysta z trwałego powiązania wyjściowego klienta.

Uwaga

W przeciwieństwie do innych typów funkcji funkcje orkiestratora i jednostki nie mogą być wyzwalane bezpośrednio przy użyciu przycisków w witrynie Azure Portal. Jeśli chcesz przetestować funkcję orkiestratora lub jednostki w witrynie Azure Portal, musisz zamiast tego uruchomić funkcję klienta uruchamiającą orkiestrator lub funkcję jednostki w ramach jej implementacji. W przypadku najprostszego środowiska testowania zalecana jest funkcja wyzwalacza ręcznego.

Oprócz wyzwalania funkcji orkiestratora lub jednostki trwałe powiązanie klienta może służyć do interakcji z uruchomionymi orkiestracjami i jednostkami. Na przykład orkiestracje mogą być odpytywane, przerywane i mogą być wywoływane zdarzenia. Aby uzyskać więcej informacji na temat zarządzania aranżacjami i jednostkami, zobacz artykuł Zarządzanie wystąpieniami .

Następne kroki

Aby rozpocząć, utwórz pierwszą trwałą funkcję w języku C#, JavaScript, Python, PowerShell lub Java.