Udostępnij za pośrednictwem


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 Node.js w instalatorze programu VS

  • 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

  1. Otwórz program Visual Studio.

  2. 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).

  3. Naciśnij F5, aby skompilować i uruchomić aplikację, i upewnij się, że wszystko działa zgodnie z oczekiwaniami.

  4. 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.

  5. 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:

  1. Upewnij się, że rozszerzenie GitHub dla programu Visual Studio jest zainstalowane i włączone przy użyciu elementu menu Tools>Extensions and Updates.

  2. Z menu wybierz pozycję View>Other Windows>GitHub.

    Zostanie otwarte okno usługi GitHub.

  3. 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.

    Otwórz okno usługi GitHub

  4. Kliknij Rozpocznij.

    Jeśli masz już połączenie z usługą GitHub, przybornik będzie wyglądać podobnie do poniższej ilustracji.

    ustawienia repozytorium GitHub

  5. 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

  1. Zaloguj się do portalu Azure.

  2. Wybierz pozycję App Services z listy usług po lewej stronie, a następnie kliknij pozycję Dodaj.

  3. W razie potrzeby utwórz nową grupę zasobów i plan usługi App Service do hostowania nowej aplikacji.

  4. Upewnij się, że ustawiono system operacyjny naLinuxi ustaw stos środowiska uruchomieniowego na wymaganą wersję Node.js, jak pokazano na ilustracji.

    Utwórz usługę Linux App Service

  5. Kliknij Utwórz, aby utworzyć usługę App Service.

    Wdrożenie może potrwać kilka minut.

  6. 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.

  7. W obszarze Ustawienia aplikacjidodaj inne ustawienie z nazwą WEBSITE_NODE_DEFAULT_VERSION i wartością 8.9.0.

  8. Po wdrożeniu otwórz usługę App Service i wybierz pozycję Opcje wdrażania.

    opcje wdrażania

  9. Kliknij Wybierz źródło, a następnie wybierz GitHub, a potem skonfiguruj wszystkie wymagane uprawnienia.

    uprawnienia usługi GitHub

  10. Wybierz repozytorium i gałąź do opublikowania, a następnie wybierz pozycję OK.

    Opublikuj w Linux App Service

    Strona opcji wdrażania pojawia się podczas synchronizacji.

    wdrażanie i synchronizowanie z usługą GitHub

    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

  1. 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"});
    });
    
  2. 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.

    zmień i zsynchronizuj

  3. 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.