Publikowanie aplikacji Node.js na platformie Azure (Linux App Service)
Ten samouczek przeprowadzi Cię przez zadanie tworzenia prostej aplikacji Node.js i publikowania jej na platformie Azure.
Podczas publikowania aplikacji Node.js na platformie Azure istnieje kilka opcji. Obejmują one usługę Azure App Service, maszynę wirtualną z systemem operacyjnym wybranym przez Ciebie, usługę Azure Kubernetes Service (AKS) do zarządzania przy użyciu platformy Kubernetes, instancję kontenera przy użyciu usługi Docker i inne. Aby uzyskać więcej informacji na temat każdej z tych opcji, zobacz Compute.
W tym samouczku wdrożysz aplikację do usługi Linux App Service. Usługa App Service w systemie Linux wdraża kontener Docker w celu uruchomienia aplikacji Node.js (w przeciwieństwie do usługi Windows App Service, która uruchamia aplikacje Node.js w oparciu o IIS w systemie Windows).
W tym samouczku pokazano, jak utworzyć aplikację Node.js zaczynającą się od szablonu zainstalowanego za pomocą narzędzia Node.js Tools for Visual Studio, wypchnąć kod do repozytorium w usłudze GitHub, a następnie aprowizować usługę Azure App Service za pośrednictwem witryny Azure Web Portal, aby można było wdrożyć go z repozytorium GitHub. Aby użyć wiersza polecenia, aby aprowizować usługę Azure App Service i wypchnąć kod z lokalnego repozytorium Git, zobacz Create Node.js App.
Ważny
Informacje zawarte w tym artykule dotyczą tylko typu projektu Node.js (.njsproj). Szablon używany w tym artykule nie jest już dostępny, począwszy od programu Visual Studio 2022 w wersji 17.8 (wersja zapoznawcza 2).
Z tego samouczka dowiesz się, jak wykonywać następujące działania:
- Tworzenie projektu Node.js
- Tworzenie repozytorium GitHub dla kodu
- Tworzenie usługi App Service systemu Linux na platformie Azure
- Wdrażanie w systemie Linux
Warunki wstępne
Musisz mieć zainstalowany program Visual Studio i obciążenie programistyczne Node.js.
Jeśli nie zainstalowałeś jeszcze programu Visual Studio 2019, przejdź do strony z pobraniami Visual Studio, aby zainstalować go bezpłatnie.
Jeśli musisz zainstalować obciążenie, ale masz już program Visual Studio, przejdź do Tools>Pobierz narzędzia i funkcje..., co spowoduje otwarcie Instalatora programu Visual Studio. Wybierz obciążenie programowaniaNode.js, a następnie wybierz pozycję Modyfikuj.
Obciążenie
Musisz mieć zainstalowane środowisko uruchomieniowe Node.js.
Jeśli nie masz zainstalowanej wersji, zainstaluj wersję LTS z witryny internetowej Node.js. Ogólnie rzecz biorąc, program Visual Studio automatycznie wykrywa zainstalowane środowisko uruchomieniowe Node.js. Jeśli nie wykryje zainstalowanego środowiska uruchomieniowego, możesz skonfigurować projekt tak, aby odwoływać się do zainstalowanego środowiska uruchomieniowego na stronie właściwości (po utworzeniu projektu kliknij prawym przyciskiem myszy węzeł projektu i wybierz pozycję właściwości ).
Tworzenie projektu Node.js do uruchomienia na platformie Azure
Otwórz program Visual Studio.
Utwórz nową aplikację TypeScript Express.
Naciśnij Esc, aby zamknąć okno uruchamiania. Wpisz Ctrl + Q, aby otworzyć pole wyszukiwania, wpisz Node.js, a następnie wybierz pozycję Utwórz nową podstawową aplikację platformy Azure Node.js Express 4 (TypeScript). W wyświetlonym oknie dialogowym wybierz pozycję Utwórz.
Jeśli nie widzisz szablonu projektu Podstawowa aplikacja Azure Node.js Express 4, musisz dodać pakiet deweloperskiNode.js. Aby uzyskać szczegółowe instrukcje, zobacz Prerequisites.
Program Visual Studio tworzy projekt i otwiera go w Eksploratorze rozwiązań (okienko po prawej stronie).
Naciśnij F5, aby skompilować i uruchomić aplikację, i upewnij się, że wszystko działa zgodnie z oczekiwaniami.
Wybierz pozycję Plik>Dodaj do kontroli źródła, aby utworzyć lokalne repozytorium Git dla projektu.
W tym momencie aplikacja Node.js korzystająca z frameworka Express i napisana w języku TypeScript działa i jest dodana do lokalnego systemu kontroli wersji.
Edytuj projekt zgodnie z potrzebami przed przejściem do następnych kroków.
Wypychanie kodu z programu Visual Studio do usługi GitHub
Aby skonfigurować usługę GitHub dla programu Visual Studio:
Upewnij się, że rozszerzenie GitHub dla programu Visual Studio jest zainstalowane i włączone przy użyciu elementu menu Tools>Extensions and Updates.
Z menu wybierz pozycję View>Other Windows>GitHub.
Zostanie otwarte okno usługi GitHub.
Jeśli nie widzisz przycisku Rozpocznij w oknie usługi GitHub, kliknij przycisk Plik>Dodaj do kontroli źródła i poczekaj na aktualizację interfejsu użytkownika.
Kliknij Rozpocznij.
Jeśli masz już połączenie z usługą GitHub, przybornik będzie wyglądać podobnie do poniższej ilustracji.
Wypełnij pola dla nowego repozytorium, a następnie kliknij przycisk Opublikuj.
Po kilku chwilach zostanie wyświetlony baner z informacją o pomyślnym utworzeniu repozytorium.
W następnej sekcji dowiesz się, jak opublikować z tego repozytorium w usłudze Azure App Service w systemie Linux.
Tworzenie usługi App Service systemu Linux na platformie Azure
Zaloguj się do portalu Azure.
Wybierz pozycję App Services z listy usług po lewej stronie, a następnie kliknij pozycję Dodaj.
W razie potrzeby utwórz nową grupę zasobów i plan usługi App Service do hostowania nowej aplikacji.
Upewnij się, że ustawiono system operacyjny naLinuxi ustaw stos środowiska uruchomieniowego na wymaganą wersję Node.js, jak pokazano na ilustracji.
usługę Linux App Service
Kliknij Utwórz, aby utworzyć usługę App Service.
Wdrożenie może potrwać kilka minut.
Po wdrożeniu przejdź do sekcji Ustawienia aplikacji i dodaj ustawienie o nazwie
SCM_SCRIPT_GENERATOR_ARGS
i wartości--node
.ustawienia aplikacji
Ostrzeżenie
Proces wdrażania usługi App Service używa zestawu heurystyki do określenia typu aplikacji do wypróbowania i uruchomienia. Jeśli plik .sln zostanie wykryty w wdrożonej zawartości, założy, że wdrażany jest projekt oparty na MSBuild. Ustawienie dodane powyżej zastępuje tę logikę i określa jawnie, że jest to aplikacja Node.js. Bez tego ustawienia wdrożenie aplikacji Node.js zakończy się niepowodzeniem, jeśli plik .sln jest częścią repozytorium wdrażanego do usługi App Service.
W obszarze Ustawienia aplikacjidodaj inne ustawienie z nazwą
WEBSITE_NODE_DEFAULT_VERSION
i wartością8.9.0
.Po wdrożeniu otwórz usługę App Service i wybierz pozycję Opcje wdrażania.
opcje wdrażania
Kliknij Wybierz źródło, a następnie wybierz GitHub, a potem skonfiguruj wszystkie wymagane uprawnienia.
Wybierz repozytorium i gałąź do opublikowania, a następnie wybierz pozycję OK.
Strona opcji wdrażania pojawia się podczas synchronizacji.
Po zakończeniu synchronizacji zostanie wyświetlony znacznik wyboru.
Witryna uruchamia teraz aplikację Node.js z repozytorium GitHub i jest dostępna pod adresem URL utworzonym dla usługi Azure App Service (domyślnie nazwą nadaną usłudze Azure App Service, po której następuje
.azurewebsites.net
).
Zmodyfikuj swoją aplikację i wypchnij zmiany
Dodaj kod pokazany tutaj w app.ts po wierszu
app.use('/users', users);
. Spowoduje to dodanie interfejsu API REST pod adresem URL /api.app.use('/api', (req, res, next) => { res.json({"result": "success"}); });
Skompiluj kod i przetestuj go lokalnie, a następnie zaewidencjonuj go i wypchnij do usługi GitHub.
W witrynie Azure Portal wykrywanie zmian w repozytorium GitHub trwa kilka minut, a następnie rozpoczyna się nowa synchronizacja wdrożenia. Wygląda to podobnie do poniższej ilustracji.
Po zakończeniu wdrażania przejdź do witryny publicznej i dołącz /api do adresu URL. Zwracana jest odpowiedź JSON.
Rozwiązywanie problemów
- Jeśli proces node.exe umrze (oznacza to, że wystąpi nieobsługiwany wyjątek), kontener zostanie uruchomiony ponownie.
- Po uruchomieniu kontenera wykorzystuje różne heurystyki, aby dowiedzieć się, jak rozpocząć proces Node.js. Szczegóły implementacji można zobaczyć na stronie generateStartupCommand.js.
- Możesz nawiązać połączenie z uruchomionym kontenerem za pośrednictwem protokołu SSH w celu przeprowadzenia badań. Można to łatwo zrobić za pomocą witryny Azure Portal. Wybierz usługę App Service i przewiń w dół listę narzędzi do momentu osiągnięcia SSH w sekcji Narzędzia programistyczne.
- Aby pomóc w rozwiązywaniu problemów, przejdź do dzienników diagnostyki ustawień usługi App Service i zmień ustawienie rejestrowania kontenera Docker z Wyłączone na system plików. Dzienniki są tworzone w kontenerze w obszarze /home/LogFiles/_docker.log*, a dostęp do tych dzienników można uzyskać w polu przy użyciu protokołu SSH lub FTP(S).
- Niestandardowa nazwa domeny może być przypisana do witryny, a nie adres URL *.azurewebsites.net przypisany domyślnie. Aby uzyskać więcej informacji, zobacz temat Mapa domeny niestandardowej.
- Wdrożenie w lokacji przejściowej w celu dalszego testowania przed przejściem do środowiska produkcyjnego jest najlepszym rozwiązaniem. Aby uzyskać szczegółowe informacje na temat konfigurowania tej konfiguracji, zobacz temat Tworzenie środowisk przejściowych.
- Zobacz sekcję często zadawanych pytań na temat App Service w systemie Linux, aby uzyskać więcej odpowiedzi na popularne pytania.
Następne kroki
W tym samouczku przedstawiono sposób tworzenia usługi App Service dla systemu Linux i wdrażania aplikacji Node.js w usłudze. Możesz dowiedzieć się więcej o usłudze App Service dla systemu Linux.