Tworzenie pierwszej funkcji trwałej w języku Java Script
Durable Functions to rozszerzenie usługi Azure Functions umożliwiające zapisywanie funkcji stanowych w środowisku bezserwerowym. Rozszerzenie zarządza stanem, punktami kontrolnymi i ponownym uruchamianiem.
W tym artykule przedstawiono użycie rozszerzenia programu Visual Studio Code dla usługi Azure Functions w celu lokalnego utworzenia i przetestowania funkcji trwałej „hello world”. Ta funkcja będzie aranżować i łączyć w łańcuchy wywołania do innych funkcji. Kod funkcji zostanie następnie opublikowany na platformie Azure.
Ważne
Zawartość tego artykułu zmienia się w zależności od wybranego modelu programowania Node.js w selektorze w górnej części strony. Model w wersji 4 jest ogólnie dostępny i ma bardziej elastyczne i intuicyjne środowisko dla deweloperów języka JavaScript i Języka TypeScript. Dowiedz się więcej o różnicach między wersjami 3 i v4 w przewodniku migracji.
Wymagania wstępne
W celu ukończenia tego samouczka:
- Zainstalowanie programu Visual Studio Code.
- Zainstaluj wersję
1.10.4
rozszerzenia programu VS Code usługi Azure Functions lub nowszą.
- Upewnij się, że masz najnowszą wersję narzędzi Azure Functions Core Tools.
- Upewnij się, że masz wersję narzędzi Azure Functions Core Tools lub nowszą
v4.0.5382
.
- Rozszerzenie Durable Functions wymaga konta usługi Azure Storage. Wymagana jest subskrypcja platformy Azure.
- Upewnij się, że masz zainstalowaną wersję 16.x+ Node.js .
- Upewnij się, że masz zainstalowaną wersję 18.x+ Node.js .
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.
Tworzenie projektu lokalnego
W tej sekcji użyjesz programu Visual Studio Code do utworzenia lokalnego projektu usługi Azure Functions.
W programie Visual Studio Code naciśnij klawisz F1 (lub Ctrl/Cmd+Shift+P), aby otworzyć paletę poleceń. W palecie poleceń wyszukaj i wybierz pozycję
Azure Functions: Create New Project...
.Wybierz pustą lokalizację folderu dla projektu i wybierz pozycję Wybierz.
Po wyświetleniu monitów podaj następujące informacje:
Monit Wartość Opis Wybieranie języka projektu aplikacji funkcji JavaScript Utwórz lokalny projekt usługi Node.js Functions. Wybieranie modelu programowania JavaScript Model V3 Wybierz model programowania w wersji 3. Wybierz wersję Usługa Azure Functions w wersji 4 Ta opcja jest widoczna tylko wtedy, gdy narzędzia Core Tools nie są jeszcze zainstalowane. W takim przypadku narzędzia Core Tools są instalowane po raz pierwszy podczas uruchamiania aplikacji. Wybieranie szablonu dla pierwszej funkcji projektu Pomiń teraz Wybierz sposób otwierania projektu Otwórz w bieżącym oknie Otwiera ponownie program VS Code w wybranym folderze.
Po wyświetleniu monitów podaj następujące informacje:
Monit Wartość Opis Wybieranie języka projektu aplikacji funkcji JavaScript Utwórz lokalny projekt usługi Node.js Functions. Wybieranie modelu programowania JavaScript Model V4 Wybierz model programowania w wersji 4. Wybierz wersję Usługa Azure Functions w wersji 4 Ta opcja jest widoczna tylko wtedy, gdy narzędzia Core Tools nie są jeszcze zainstalowane. W takim przypadku narzędzia Core Tools są instalowane po raz pierwszy podczas uruchamiania aplikacji. Wybieranie szablonu dla pierwszej funkcji projektu Pomiń teraz Wybierz sposób otwierania projektu Otwórz w bieżącym oknie Otwiera ponownie program VS Code w wybranym folderze.
W razie potrzeby program Visual Studio Code instaluje narzędzia Azure Functions Core Tools. Tworzy również projekt aplikacji funkcji w folderze. Ten projekt zawiera pliki konfiguracji host.json i local.settings.json .
Plik package.json
jest również tworzony w folderze głównym.
Instalowanie pakietu npm rozszerzenia Durable Functions
Aby pracować z rozszerzeniem Durable Functions w aplikacji funkcji Node.js, należy użyć biblioteki o nazwie durable-functions
.
Aby użyć modelu programowania w wersji 4, należy zainstalować wersję zapoznawcza v3.x
programu durable-functions
.
- Użyj menu Widok lub Ctrl + Shift + ' , aby otworzyć nowy terminal w programie VS Code.
- Zainstaluj pakiet npm
durable-functions
, uruchamiając polecenienpm install durable-functions
w katalogu głównym aplikacji funkcji.
durable-functions
Zainstaluj wersję zapoznawcza pakietu npm, uruchamiając polecenienpm install durable-functions@preview
w katalogu głównym aplikacji funkcji.
Tworzenie funkcji
Najbardziej podstawowa aplikacja Durable Functions zawiera trzy funkcje:
- Funkcja orchestrator — opisuje przepływ pracy, który organizuje inne funkcje.
- Funkcja Activity — wywoływana przez funkcję orkiestratora, wykonuje pracę i opcjonalnie zwraca wartość.
- Funkcja klienta — zwykła funkcja platformy Azure, która uruchamia funkcję orkiestratora. W tym przykładzie użyto funkcji wyzwalanej przez protokół HTTP.
Orchestrator, funkcja
Szablon służy do tworzenia kodu funkcji trwałej w projekcie.
W palecie poleceń wyszukaj i wybierz pozycję
Azure Functions: Create Function...
.Po wyświetleniu monitów podaj następujące informacje:
Monit Wartość Opis Wybieranie szablonu dla funkcji Orkiestrator rozszerzenia Durable Functions Tworzenie orkiestracji rozszerzenia Durable Functions Wybierz trwały typ magazynu. Azure Storage (ustawienie domyślne) Wybierz zaplecze magazynu używane dla rozszerzenia Durable Functions. Podaj nazwę funkcji HelloOrchestrator Nazwa funkcji trwałej
Dodano orkiestrator do koordynowania funkcji działania. Otwórz aplikację HelloOrchestrator/index.js , aby wyświetlić funkcję orkiestratora. Każde wywołanie do wywołania context.df.callActivity
wywołuje funkcję działania o nazwie Hello
.
Następnie dodasz przywołyną Hello
funkcję działania.
Activity, funkcja
W palecie poleceń wyszukaj i wybierz pozycję
Azure Functions: Create Function...
.Po wyświetleniu monitów podaj następujące informacje:
Monit Wartość Opis Wybieranie szablonu dla funkcji Działanie rozszerzenia Durable Functions Tworzenie funkcji działania Podaj nazwę funkcji Hello (Cześć) Nazwa funkcji działania
Dodano Hello
funkcję działania wywoływaną przez koordynatora. Otwórz pozycję Hello/index.js , aby zobaczyć, że przyjmuje nazwę jako dane wejściowe i zwraca powitanie. Funkcja działania polega na tym, że wykonujesz "prawdziwą pracę" w przepływie pracy: na przykład wykonywanie wywołania bazy danych lub wykonywanie pewnych obliczeń niedeterministycznych.
Na koniec dodasz funkcję wyzwalaną przez protokół HTTP, która uruchamia orkiestrację.
Funkcja klienta (starter HTTP)
W palecie poleceń wyszukaj i wybierz pozycję
Azure Functions: Create Function...
.Po wyświetleniu monitów podaj następujące informacje:
Monit Wartość Opis Wybieranie szablonu dla funkcji Trwały start HTTP usługi Durable Functions Tworzenie funkcji startowej HTTP Podaj nazwę funkcji DurableFunctionsHttpStart Nazwa funkcji działania Poziom autoryzacji Anonimowe W celach demonstracyjnych zezwól na wywoływanie funkcji bez uwierzytelniania
Dodano funkcję wyzwalaną przez protokół HTTP, która uruchamia aranżację. Otwórz plik DurableFunctionsHttpStart/index.js , aby zobaczyć, że używa client.startNew
go do rozpoczęcia nowej aranżacji. Następnie służy client.createCheckStatusResponse
do zwracania odpowiedzi HTTP zawierającej adresy URL, których można użyć do monitorowania nowej aranżacji i zarządzania nią.
Masz teraz aplikację Durable Functions, którą można uruchomić lokalnie i wdrożyć na platformie Azure.
Jedną z zalet modelu programowania w wersji 4 jest elastyczność pisania funkcji. W modelu w wersji 4 można użyć jednego szablonu, aby utworzyć wszystkie trzy funkcje w jednym pliku w projekcie.
W palecie poleceń wyszukaj i wybierz pozycję
Azure Functions: Create Function...
.Po wyświetleniu monitów podaj następujące informacje:
Monit Wartość Opis Wybieranie szablonu dla funkcji Orkiestrator rozszerzenia Durable Functions Utwórz plik z orkiestracją rozszerzenia Durable Functions, funkcją Activity i funkcją startową durable client. Wybieranie trwałego typu magazynu Azure Storage (ustawienie domyślne) Wybierz zaplecze magazynu używane dla rozszerzenia Durable Functions. Podaj nazwę funkcji hello Nazwa używana dla funkcji trwałych
Otwórz plik src/functions/hello.js , aby wyświetlić utworzone funkcje.
Utworzono orkiestrator o nazwie helloOrchestrator
w celu koordynowania funkcji działania. Każde wywołanie w celu wywołania context.df.callActivity
wywołuje funkcję działania o nazwie hello
.
Dodano również hello
funkcję działania wywoływaną przez koordynatora. W tym samym pliku widać, że przyjmuje nazwę jako dane wejściowe i zwraca powitanie. Funkcja działania polega na tym, że wykonujesz "prawdziwą pracę" w przepływie pracy: na przykład wykonywanie wywołania bazy danych lub wykonywanie pewnych obliczeń niedeterministycznych.
Na koniec dodano również funkcję wyzwalaną przez protokół HTTP, która uruchamia orkiestrację. W tym samym pliku widać, że używa client.startNew
go do rozpoczęcia nowej aranżacji. Następnie służy client.createCheckStatusResponse
do zwracania odpowiedzi HTTP zawierającej adresy URL, których można użyć do monitorowania nowej aranżacji i zarządzania nią.
Masz teraz aplikację Durable Functions, którą można uruchomić lokalnie i wdrożyć na platformie Azure.
Lokalne testowanie funkcji
Podstawowe narzędzia usługi Azure Functions umożliwiają uruchamianie projektu usługi Azure Functions na lokalnym komputerze deweloperskim. Monit o zainstalowanie tych narzędzi pojawia się przy pierwszym uruchomieniu funkcji w programie Visual Studio Code.
- Aby przetestować funkcję, ustaw punkt przerwania w
Hello
kodzie funkcji działania (Hello/index.js). Naciśnij klawisz F5 lub wybierz zDebug: Start Debugging
palety poleceń, aby uruchomić projekt aplikacji funkcji. Dane wyjściowe z pakietu Core Tools są wyświetlane na panelu terminalu.
- Aby przetestować funkcję, ustaw punkt przerwania w
hello
kodzie funkcji działania (src/functions/hello.js). Naciśnij klawisz F5 lub wybierz zDebug: Start Debugging
palety poleceń, aby uruchomić projekt aplikacji funkcji. Dane wyjściowe z pakietu Core Tools są wyświetlane na panelu terminalu.
Uwaga
Aby uzyskać więcej informacji na temat debugowania, zapoznaj się z diagnostyką rozszerzenia Durable Functions.
Rozszerzenie Durable Functions wymaga uruchomienia konta usługi Azure Storage. Gdy program VS Code wyświetli monit o wybranie konta magazynu, wybierz pozycję Wybierz konto magazynu.
Po wyświetleniu monitów podaj następujące informacje, aby utworzyć nowe konto magazynu na platformie Azure.
Monit Wartość Opis Wybieranie subskrypcji nazwa subskrypcji Wybierz subskrypcję platformy Azure Wybierz konto magazynu Tworzenie nowego konta magazynu Wprowadź nazwę nowego konta magazynu unikatowa nazwa Nazwa konta magazynu do utworzenia Wybieranie grupy zasobów unikatowa nazwa Nazwa grupy zasobów do utworzenia Wybieranie lokalizacji Region Wybierz region blisko Ciebie W panelu terminalu skopiuj punkt końcowy adresu URL funkcji wyzwalanej przez protokół HTTP.
Odpowiedź to początkowy wynik funkcji HTTP informujący o pomyślnym rozpoczęciu orkiestracji trwałej. Nie jest to jeszcze końcowy wynik aranżacji. Odpowiedź zawiera kilka przydatnych adresów URL. Na razie wykonajmy zapytanie o stan aranżacji.
Skopiuj wartość adresu URL i
statusQueryGetUri
wklej ją na pasku adresu przeglądarki i wykonaj żądanie. Alternatywnie możesz również nadal używać narzędzia Postman do wystawiania żądania GET.Żądanie wysyła zapytanie do wystąpienia orkiestracji dla stanu. Otrzymasz ostateczną odpowiedź, która pokazuje, że wystąpienie zostało ukończone i zawiera dane wyjściowe lub wyniki funkcji trwałej. Wygląda na to:
{ "name": "HelloOrchestrator", "instanceId": "9a528a9e926f4b46b7d3deaa134b7e8a", "runtimeStatus": "Completed", "input": null, "customStatus": null, "output": [ "Hello Tokyo!", "Hello Seattle!", "Hello London!" ], "createdTime": "2020-03-18T21:54:49Z", "lastUpdatedTime": "2020-03-18T21:54:54Z" }
{ "name": "helloOrchestrator", "instanceId": "6ba3f77933b1461ea1a3828c013c9d56", "runtimeStatus": "Completed", "input": "", "customStatus": null, "output": [ "Hello, Tokyo", "Hello, Seattle", "Hello, Cairo" ], "createdTime": "2023-02-13T23:02:21Z", "lastUpdatedTime": "2023-02-13T23:02:25Z" }
Aby zatrzymać debugowanie, naciśnij klawisze Shift + F5 w programie VS Code.
Gdy będziesz mieć pewność, że funkcja działa poprawnie na komputerze lokalnym, możesz opublikować projekt na platformie Azure.
Logowanie się do platformy Azure
Aby można było utworzyć zasoby platformy Azure lub opublikować aplikację, musisz zalogować się na platformie Azure.
Jeśli jeszcze nie zalogowałeś się, wybierz ikonę platformy Azure na pasku działania. Następnie w obszarze Zasoby wybierz pozycję Zaloguj się do platformy Azure....
Jeśli już się zalogowałeś i widzisz istniejące subskrypcje, przejdź do następnej sekcji. Jeśli nie masz jeszcze konta platformy Azure, wybierz pozycję Utwórz konto platformy Azure.... Uczniowie mogą wybrać pozycję Utwórz konto platformy Azure for Students....
Po wyświetleniu monitu w przeglądarce wybierz swoje konto platformy Azure i zaloguj się przy użyciu poświadczeń konta platformy Azure. Jeśli tworzysz nowe konto, możesz zalogować się po utworzeniu konta.
Po pomyślnym zalogowaniu możesz zamknąć nowe okno przeglądarki. Subskrypcje należące do konta platformy Azure są wyświetlane na pasku bocznym.
Tworzenie aplikacji funkcji na platformie Azure
W tej sekcji utworzysz aplikację funkcji i powiązane zasoby w ramach subskrypcji platformy Azure.
Wybierz ikonę platformy Azure na pasku działania. Następnie w obszarze Zasoby wybierz ikonę + i wybierz opcję Utwórz aplikację funkcji na platformie Azure .
Podaj następujące informacje po wyświetleniu monitów:
Monit Wybór Wybierz subskrypcję Wybierz subskrypcję, która ma zostać użyta. Ten monit nie będzie wyświetlany, gdy w obszarze Zasoby jest widoczna tylko jedna subskrypcja. Wprowadź globalnie unikatową nazwę aplikacji funkcji Wpisz nazwę prawidłową w ścieżce adresu URL. Typ nazwy jest weryfikowany, aby upewnić się, że jest on unikatowy w usłudze Azure Functions. Wybieranie stosu środowiska uruchomieniowego Wybierz wersję języka, dla której uruchomiono lokalnie. Wybieranie lokalizacji dla nowych zasobów Aby uzyskać lepszą wydajność, wybierz region blisko Ciebie. Rozszerzenie pokazuje stan poszczególnych zasobów podczas ich tworzenia na platformie Azure w panelu Azure: Dziennik aktywności.
Po zakończeniu tworzenia następujące zasoby platformy Azure są tworzone w ramach subskrypcji. Zasoby są nazwane na podstawie nazwy aplikacji funkcji:
- Grupa zasobów, która jest kontenerem logicznym dla powiązanych zasobów.
- Standardowe konto usługi Azure Storage, które zachowuje stan i inne informacje o projektach.
- Aplikacja funkcji, która udostępnia środowisko do wykonywania kodu funkcji. Aplikacja funkcji umożliwia grupowanie funkcji jako jednostki logicznej w celu łatwiejszego zarządzania, wdrażania i udostępniania zasobów w ramach tego samego planu hostingu.
- Plan usługi App Service, który definiuje podstawowy host aplikacji funkcji.
- Wystąpienie aplikacji Szczegółowe informacje połączone z aplikacją funkcji, które śledzi użycie funkcji w aplikacji.
Po utworzeniu aplikacji funkcji i zastosowaniu pakietu wdrożeniowego zostanie wyświetlone powiadomienie.
Napiwek
Domyślnie zasoby platformy Azure wymagane przez aplikację funkcji są tworzone na podstawie podanej nazwy aplikacji funkcji. Domyślnie są one również tworzone w tej samej nowej grupie zasobów z aplikacją funkcji. Jeśli chcesz dostosować nazwy tych zasobów lub ponownie użyć istniejących zasobów, musisz opublikować projekt z zaawansowanymi opcjami tworzenia.
Wdrażanie projektu na platformie Azure
Ważne
Wdrażanie w istniejącej aplikacji funkcji zawsze zastępuje zawartość tej aplikacji na platformie Azure.
W obszarze Zasoby działania platformy Azure znajdź właśnie utworzony zasób aplikacji funkcji, kliknij prawym przyciskiem myszy zasób i wybierz polecenie Wdróż w aplikacji funkcji....
Po wyświetleniu monitu o zastąpienie poprzednich wdrożeń wybierz pozycję Wdróż , aby wdrożyć kod funkcji w nowym zasobie aplikacji funkcji.
Po zakończeniu wdrażania wybierz pozycję Wyświetl dane wyjściowe , aby wyświetlić wyniki tworzenia i wdrażania, w tym utworzone zasoby platformy Azure. Jeśli przegapisz powiadomienie, wybierz ikonę dzwonka w prawym dolnym rogu, aby zobaczyć je ponownie.
Testowanie funkcji na platformie Azure
Uwaga
Aby użyć modelu programowania węzłów w wersji 4, upewnij się, że aplikacja jest uruchomiona w co najmniej wersji 4.25 środowiska uruchomieniowego usługi Azure Functions.
- Skopiuj adres URL wyzwalacza HTTP z panelu Dane wyjściowe. Adres URL, który wywołuje funkcję wyzwalaną przez protokół HTTP, powinien mieć następujący format:
https://<functionappname>.azurewebsites.net/api/orchestrators/HelloOrchestrator
- Skopiuj adres URL wyzwalacza HTTP z panelu Dane wyjściowe. Adres URL, który wywołuje funkcję wyzwalaną przez protokół HTTP, powinien mieć następujący format:
https://<functionappname>.azurewebsites.net/api/orchestrators/helloOrchestrator
- Wklej nowy adres URL żądania HTTP na pasku adresu przeglądarki. Podczas korzystania z opublikowanej aplikacji powinna zostać zwrócona taka sama odpowiedź dotycząca stanu.
Następne kroki
Utworzono i opublikowano aplikację funkcji trwałej w języku JavaScript za pomocą narzędzia Visual Studio Code.