Co to jest rozszerzenie Durable Functions?

Ukończone

Rozszerzenie Durable Functions umożliwia implementowanie złożonych funkcji stanowych w środowisku bezserwerowym.

W przykładowym scenariuszu firma jest obecnie zgodna z procesem ręcznego zatwierdzania propozycji projektu. Proces ma wiele etapów, a każdy etap procesu może mieć inny czas trwania. Zaimplementowanie zautomatyzowanego procesu w firmie jest skomplikowane i kosztowne. Koordynacja każdego etapu wymaga wysiłku. Ponadto musisz mieć możliwość uwzględnienia logiki niestandardowej w przepływie pracy.

W czasie tej lekcji poznasz korzyści, jakie zapewnia rozszerzenie Durable Functions. Poznasz różne typy funkcji i kluczowe pojęcia związane z rozszerzeniem Durable Functions.

Durable Functions

Durable Functions to rozszerzenie usługi Azure Functions. Podczas gdy usługa Azure Functions działa w środowisku bezstanowym, rozszerzenie Durable Functions może zachować stan między wywołaniami funkcji. Takie podejście umożliwia uproszczenie złożonych wykonań stanowych w środowisku bezserwerowym.

Rozszerzenie Durable Functions jest skalowane zgodnie z potrzebami i zapewnia ekonomiczny sposób implementowania złożonych przepływów pracy w chmurze. Rozszerzenie Durable Functions zapewnia między innymi następujące korzyści:

  • Umożliwia pisanie kodu sterowanego zdarzeniami. Funkcja trwała może czekać asynchronicznie dla co najmniej jednego zdarzenia zewnętrznego, a następnie wykonywać serię zadań w odpowiedzi na te zdarzenia.

  • Funkcje można łączyć w sposób sekwencyjny. Można zaimplementować typowe wzorce, takie jak fan-out/fan-in, które używają jednej funkcji do równoległego wywoływania innych, a następnie kumulować wyniki.

  • Możesz organizować i koordynować funkcje oraz określać kolejność wykonywania funkcji.

  • Rozszerzenie zarządza stanem za Ciebie. Nie musisz pisać własnego kodu, aby zapisać informacje o stanie dla długotrwałej funkcji.

Rozszerzenie Durable Functions umożliwia definiowanie stanowych przepływów pracy przy użyciu funkcji aranżacji. Funkcja orkiestracji zapewnia następujące dodatkowe korzyści:

  • Możliwość definiowania przepływów pracy w kodzie. Nie musisz pisać opisu JSON ani używać narzędzia do projektowania przepływów pracy.

  • Możliwość synchronicznego i asynchronicznego wywoływania funkcji. Dane wyjściowe z wywołanych funkcji są zapisywane lokalnie w zmiennych i używane w kolejnych wywołaniach funkcji.

  • Platforma Azure automatycznie kontroluje postęp funkcji, gdy funkcja czeka. Platforma Azure może zdecydować się na odwodnienie funkcji i zaoszczędzić jej stan, gdy funkcja czeka na zachowanie zasobów i obniży koszty. Po ponownym uruchomieniu funkcji platforma Azure przywraca ją z magazynu trwałego i przywraca jej stan.

Typy funkcji

Można użyć trzech typów funkcji trwałych: Client, Orchestrator i Activity.

Funkcje klienta to miejsce rozpoczęcia tworzenia wystąpienia orkiestracji rozszerzenia Durable Functions. Mogą one być uruchamiane w odpowiedzi na zdarzenie z wielu źródeł, takich jak nowe żądanie przychodzące HTTP, komunikat ogłaszany w kolejce komunikatów, zdarzenie przychodzące w strumieniu zdarzeń. Można je napisać w jednym z obsługiwanych języków.

Funkcje programu Orchestrator opisują sposób wykonywania akcji i kolejność ich uruchamiania. Logikę orkiestracji pisze się w kodzie (C# lub JavaScript).

Funkcje działania to podstawowe jednostki pracy w aranżacji rozszerzenia Durable Functions. Funkcja działania zawiera rzeczywistą pracę wykonaną przez orkiestrację zadania.

Wzorce aplikacji

Rozszerzenie Durable Functions umożliwia implementowanie wielu typowych wzorców przepływu pracy. Są to między innymi następujące wzorce:

  • Łańcuch funkcji: w tym wzorcu przepływ pracy wykonuje sekwencję funkcji w określonej kolejności. Dane wyjściowe jednej funkcji są stosowane do danych wejściowych następnej funkcji w sekwencji. Dane wyjściowe funkcji końcowej są używane do generowania wyniku.

    Diagram illustrating a function chaining pattern.

  • Fan out/fan in: ten wzorzec uruchamia wiele funkcji równolegle i czeka na zakończenie wszystkich funkcji. Możesz agregować wyniki równoległych wykonań lub użyć ich do obliczenia końcowego wyniku.

    Diagram illustrating a fan out/fan in pattern.

  • Asynchroniczne interfejsy API HTTP: ten wzorzec rozwiązuje problem koordynowania stanu długotrwałych operacji z klientami zewnętrznymi. Wywołanie HTTP może wyzwolić długotrwałą akcję, a następnie przekierować klienta do punktu końcowego stanu. Klient może dowiedzieć się o ukończeniu operacji, sondując ten punkt końcowy.

    Diagram illustrating an async HTTP API pattern.

  • Monitor: ten wzorzec implementuje proces cykliczny w przepływie pracy, prawdopodobnie wyszukując zmianę stanu. Tego wzorca można na przykład używać do sondowania, dopóki nie zostaną spełnione określone warunki.

    Diagram illustrating a monitor pattern.

  • Interakcja ludzka: ten wzorzec łączy zautomatyzowane procesy, które również obejmują interakcję człowieka. Stosowanie procesu ręcznego w procesie zautomatyzowanym jest trudne, ponieważ ludzie nie są dostępni i elastyczni w takim stopniu jak większość komputerów. Interakcję z ludźmi można włączyć przy użyciu limitów czasu i logiki kompensacji, która jest uruchamiana, jeśli człowiek nie może poprawnie wchodzić w interakcję w określonym czasie odpowiedzi. Przykładem procesu, który obejmuje reakcję człowieka, jest proces zatwierdzania.

    Diagram illustrating a human interaction pattern.

Porównanie z usługą Logic Apps

Durable Functions i Logic Apps to usługi platformy Azure umożliwiające użycie obciążenia bezserwerowego. Usługa Azure Durable Functions jest pomyślana jako zaawansowana opcja środowiska bezserwerowego umożliwiająca uruchamianie logiki niestandardowej. Usługa Azure Logic Apps lepiej nadaje się do integrowania usług i składników platformy Azure. Obu technologii można używać do tworzenia złożonych orkiestracji. W przypadku usługi Azure Durable Functions tworzenie orkiestracji odbywa się przez pisanie kodu i używanie rozszerzenia Durable Functions. Na potrzeby usługi Logic Apps orkiestracje są tworzone za pomocą powierzchni projektowej lub przez edycję plików konfiguracyjnych.

W poniższej tabeli wymieniono niektóre kluczowe różnice między usługą Azure Durable Functions i usługą Azure Logic Apps.

Zadanie Azure Durable Functions Azure Logic Apps
Opracowywanie zawartości Najpierw kod (imperatywne) Najpierw projekt (deklaratywne)
Łączność Około kilkunastu wbudowanych typów powiązań. Można napisać kod dla powiązań niestandardowych. Duża kolekcja łączników. Pakiet integracyjny dla przedsiębiorstw dla modelu B2B. Można również tworzyć łączniki niestandardowe.
Akcje Każde działanie jest funkcją platformy Azure. Można napisać kod dla funkcji działań. Duża kolekcja gotowych do użycia akcji. W łącznikach niestandardowych można zintegrować logikę niestandardową.
Monitorowanie Azure Application Insights Witryna Azure Portal, dzienniki usługi Azure Monitor
Zarządzanie Interfejs API REST, program PowerShell, program Visual Studio Witryna Azure Portal, interfejs API REST, program PowerShell, program Visual Studio, rozszerzenie programu Visual Studio Code

Sprawdź swoją wiedzę

1.

Co to jest rozszerzenie Durable Functions?

2.

Które z poniższych stwierdzeń najlepiej opisuje rolę funkcji Orkiestrator w przepływie pracy?

3.

Które z poniższych stwierdzeń najlepiej wyjaśnia, dlaczego wzorzec aplikacji Interakcja z użytkownikami czerpie korzyści z rozszerzenia Durable Functions?