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 aplikacja systemu Azure Service, maszynę wirtualną z wybranym systemem operacyjnym, usługę Azure Container Service (AKS) do zarządzania przy użyciu platformy Kubernetes, wystąpienie kontenera przy użyciu platformy Docker i nie tylko. Aby uzyskać więcej informacji na temat każdej z tych opcji, zobacz Obliczenia.

Na potrzeby tego samouczka wdrożysz aplikację w usłudze App Service dla systemu Linux. Usługa App Service systemu Linux wdraża kontener platformy Docker systemu Linux w celu uruchamiania aplikacji Node.js (w przeciwieństwie do usługi Windows App Service, która uruchamia aplikacje Node.js za usługami IIS w systemie Windows).

W tym samouczku pokazano, jak utworzyć aplikację Node.js, zaczynając od szablonu zainstalowanego za pomocą narzędzia Node.js Tools for Visual Studio, wypchnąć kod do repozytorium w witrynie GitHub, a następnie aprowizować usługę aplikacja systemu Azure 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ę aplikacja systemu Azure i wypchnąć kod z lokalnego repozytorium Git, zobacz Tworzenie aplikacji Node.js.

Ważne

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 czynności:

  • Tworzenie projektu z użyciem narzędzia Node.js
  • Tworzenie repozytorium GitHub dla kodu
  • Tworzenie usługi App Service systemu Linux na platformie Azure
  • Wdrażanie w systemie Linux

Wymagania wstępne

  • Musisz mieć zainstalowany program Visual Studio i obciążenie programistyczne Node.js.

    Jeśli jeszcze nie zainstalowano programu Visual Studio 2019, przejdź do strony pobierania programu Visual Studio, aby zainstalować ją bezpłatnie.

    Jeśli musisz zainstalować obciążenie, ale masz już program Visual Studio, przejdź do pozycji Narzędzia Pobierz narzędzia>i funkcje..., co spowoduje otwarcie Instalator programu Visual Studio. Wybierz pakiet roboczy Programowanie Node.js, a następnie wybierz pozycję Modyfikuj.

    Node.js workload in VS Installer

  • 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, 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 polecenie 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 klawisz 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ę Azure Node.js Express 4 (TypeScript). W wyświetlonym oknie dialogowym wybierz pozycję Utwórz.

    Jeśli nie widzisz szablonu projektu aplikacji Podstawowa platforma Azure Node.js Express 4, musisz dodać obciążenie programowania Node.js. Aby uzyskać szczegółowe instrukcje, zobacz Wymagania wstępne.

    Program Visual Studio tworzy projekt i otwiera go w Eksplorator rozwiązań (okienko po prawej stronie).

  3. Naciśnij klawisz 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 platformy Express i napisana w języku TypeScript działa i jest zaewidencjonowana w lokalnej kontroli źródła.

  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 Rozszerzenia narzędzi>i Aktualizacje.

  2. Z menu wybierz pozycję Wyświetl>inne usługi GitHub systemu Windows.>

    Zostanie otwarte okno usługi GitHub.

  3. Jeśli nie widzisz przycisku Rozpocznij w oknie usługi GitHub, kliknij przycisk Dodaj plik>do kontroli źródła i poczekaj na zaktualizowanie interfejsu użytkownika.

    Open the GitHub window

  4. Kliknij pozycję Rozpocznij.

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

    GitHub repo settings

  5. Wypełnij pola dla nowego repozytorium, aby opublikować, a następnie kliknij przycisk Publikuj.

    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 aplikacja systemu Azure w systemie Linux.

Tworzenie usługi App Service systemu Linux na platformie Azure

  1. Zaloguj się w witrynie Azure Portal.

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

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

  4. Pamiętaj, aby ustawić system operacyjny na Linux i ustawić stos środowiska uruchomieniowego na wymaganą wersję Node.js, jak pokazano na ilustracji.

    Create a Linux App Service

  5. Kliknij przycisk 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 z nazwą SCM_SCRIPT_GENERATOR_ARGS i wartością --node.

    Application settings

    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 element .Plik sln jest wykrywany we wdrożonej zawartości, zakłada, że projekt oparty na programie MSBuild jest wdrażany. 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 element .Plik sln jest częścią repozytorium wdrażanego w usłudze App Service.

  7. W obszarze Ustawienia aplikacji dodaj kolejne 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.

    Deployment options

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

    GitHub permissions

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

    Publish to Linux App Service

    Strona opcji wdrażania zostanie wyświetlona podczas synchronizacji.

    Deploying and syncing with 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 aplikacja systemu Azure (domyślnie nazwą nadaną usłudze aplikacja systemu Azure, po której następuje ".azurewebsites.net").

Modyfikowanie aplikacji i wypychanie zmian

  1. Dodaj kod pokazany tutaj w pliku 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.

    Modify and sync

  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 umiera (oznacza to, że wystąpi nieobsługiwany wyjątek), kontener zostanie uruchomiony ponownie.
  • Po uruchomieniu kontenera przechodzi przez różne heurystyki, aby dowiedzieć się, jak uruchomić proces Node.js. Szczegóły implementacji można znaleźć 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ń listę narzędzi do momentu dotarcia do protokołu SSH w sekcji Narzędzia programistyczne.
  • Aby ułatwić rozwiązywanie problemów, przejdź do ustawień dzienników diagnostycznych usługi App Service i zmień ustawienie rejestrowania kontenera platformy Docker z Wył . na System plików. Dzienniki są tworzone w kontenerze w folderze /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 Mapuj domenę niestandardową.
  • 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 często zadawane pytania dotyczące App Service dla systemu Linux, aby uzyskać więcej często zadawanych pytań.

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.