Udostępnij za pośrednictwem


Tworzenie i wdrażanie aplikacji Node.js w usłudze Azure Cloud Service (wersja klasyczna)

Ważne

Usługi Cloud Services (wersja klasyczna) są teraz przestarzałe dla nowych klientów i zostaną wycofane 31 sierpnia 2024 r. dla wszystkich klientów. Nowe wdrożenia powinny używać nowego modelu wdrażania opartego na usłudze Azure Resource Manager w usługach Azure Cloud Services (wsparcie dodatkowe).

W tym samouczku pokazano, jak utworzyć aplikację Node.js działającą w usłudze w chmurze platformy Azure. Usługi Cloud Services są blokami konstrukcyjnymi skalowalnych aplikacji w chmurze na platformie Azure. Umożliwiają one rozdzielanie i skalowanie w poziomie składników frontonu i zaplecza aplikacji oraz niezależne zarządzanie nimi. Usługi Cloud Services oferują specjalną maszynę wirtualną, która w niezawodny sposób hostuje poszczególne role.

Napiwek

Chcesz utworzyć witrynę internetową? Jeśli scenariusz obejmuje tylko prosty fronton witryny internetowej, rozważ korzystanie z lekkiej aplikacji internetowej. Możesz łatwo przeprowadzić uaktualnienie do Usługi w chmurze w przypadku rozwoju witryny internetowej lub zmiany wymagań.

Korzystając z tego samouczka, utworzysz aplikację internetową hostowaną w roli sieci Web. Emulator obliczeniowy służy do lokalnego testowania aplikacji, a następnie wdrażania jej przy użyciu narzędzi wiersza polecenia programu PowerShell.

Aplikacja jest aplikacją "hello world":

Przeglądarka wyświetlająca stronę sieci Web „Hello World”

Wymagania wstępne

Uwaga

W tym samouczku jest używany program Azure PowerShell, który wymaga systemu Windows.

  • Instalowanie i konfigurowanie programu Azure PowerShell.
  • Pobierz i zainstaluj zestaw [Azure SDK dla platformy .NET 2.7]. W instalacji wybierz pozycję:
    • MicrosoftAzureAuthoringTools
    • MicrosoftAzureComputeEmulator

Tworzenie projektu Usługi w chmurze Azure

Wykonaj poniższe zadania w celu utworzenia nowego projektu Usługi w chmurze Azure oraz utworzenia podstawowych szkieletów języka Node.js:

  1. Uruchom program Windows PowerShell jako administrator. Przy użyciu menu Start lub ekranu startowego wyszukaj program Windows PowerShell.

  2. Connect PowerShell z subskrypcją.

  3. Wprowadź następujące polecenie cmdlet programu PowerShell, aby utworzyć projekt:

    New-AzureServiceProject helloworld
    

    Wynik użycia polecenia New-AzureService helloworld

    Polecenie cmdlet New-AzureServiceProject powoduje wygenerowanie podstawowej struktury publikowania aplikacji Node.js w Usłudze w chmurze. Zawiera ona pliki konfiguracji niezbędne do publikowania na platformie Azure. Polecenie cmdlet zmienia także katalog roboczy na katalog usługi.

    Polecenie cmdlet powoduje utworzenie następujących plików:

    • ServiceConfiguration.Cloud.cscfg, ServiceConfiguration.Local.cscfg i ServiceDefinition.csdef: specyficzne dla platformy Azure pliki niezbędne do publikowania aplikacji. Aby uzyskać więcej informacji, zobacz Tworzenie hostowanej usługi platformy Azure — omówienie.
    • deploymentSettings.json: przechowuje ustawienia lokalne, które są używane przez polecenia cmdlet programu Azure PowerShell dotyczące wdrożenia.
  4. Wprowadź poniższe polecenie, aby dodać nową rolę sieci Web:

    Add-AzureNodeWebRole
    

    Dane wyjściowe polecenia Add-AzureNodeWebRole

    Polecenie cmdlet Add-AzureNodeWebRole służy do tworzenia podstawowej aplikacji Node.js. Powoduje ono również modyfikowanie plików .csfg i .csdef w celu dodania wpisów konfiguracji dla nowej roli.

    Uwaga

    Jeśli nie określisz nazwy roli, będzie używana nazwa domyślna. Nazwa może być pierwszym parametrem polecenia cmdlet: Add-AzureNodeWebRole MyRole

Aplikacja Node.js jest definiowana w pliku server.js, który znajduje się w katalogu dla roli sieci Web (domyślnie WebRole1). Oto kod:

var http = require('http');
var port = process.env.port || 1337;
http.createServer(function (req, res) {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end('Hello World\n');
}).listen(port);

Ten kod jest zasadniczo taki sam jak przykładowy kod „Hello World” w witrynie sieci Web nodejs.org, z wyjątkiem tego, że używa numeru portu przypisanego przez środowisko chmury.

Wdrożenie aplikacji na platformie Azure

Uwaga

Do wykonania kroków tego samouczka potrzebne jest konto platformy Azure. Możesz aktywować korzyści dla subskrybentów MSDN lub zarejestrować się w celu uzyskania bezpłatnego konta.

Pobieranie ustawień publikowania na platformie Azure

Aby wdrożyć aplikację na platformie Azure, należy najpierw pobrać ustawienia publikowania dla subskrypcji platformy Azure.

  1. Uruchom poniższe polecenie cmdlet programu Azure PowerShell:

    Get-AzurePublishSettingsFile
    

    To polecenie używa przeglądarki do przejścia do strony pobierania ustawień publikowania. Może zostać wyświetlony monit o zalogowanie się przy użyciu konta Microsoft. W takiej sytuacji należy użyć konta skojarzonego z subskrypcją platformy Azure.

    Zapisz pobrany profil w łatwo dostępnej lokalizacji pliku.

  2. Uruchom poniższe polecenie cmdlet, aby zaimportować pobrany profil publikowania:

    Import-AzurePublishSettingsFile [path to file]
    

    Uwaga

    Po zaimportowaniu ustawień publikowania rozważ usunięcie pobranego pliku .publishSettings, ponieważ zawiera on informacje, które mogłyby umożliwić innym osobom uzyskanie dostępu do Twojego konta.

Publikowanie aplikacji

Aby opublikować aplikację, uruchom następujące polecenie:

$ServiceName = "NodeHelloWorld" + $(Get-Date -Format ('ddhhmm'))
Publish-AzureServiceProject -ServiceName $ServiceName  -Location "East US" -Launch
  • -ServiceName — określa nazwę wdrożenia. Ta wartość musi być unikatową nazwą; w przeciwnym razie proces publikowania kończy się niepowodzeniem. Polecenie Get-Date uwzględnia ciąg daty i godziny, który powinien zapewnić unikatowość nazwy.
  • -Location określa centrum danych, które hostuje aplikację. Aby wyświetlić listę dostępnych centrów danych, użyj polecenia cmdlet Get-AzureLocation.
  • -Uruchom otwiera okno przeglądarki i przechodzi do hostowanej usługi po zakończeniu wdrażania.

Po pomyślnym opublikowaniu zostanie wyświetlona odpowiedź podobna do zrzutu ekranu:

Dane wyjściowe polecenia Publish-AzureService

Uwaga

W przypadku publikowania aplikacji po raz pierwszy jej wdrożenie i udostępnienie może potrwać kilka minut.

Po zakończeniu wdrażania zostanie otwarte okno przeglądarki i przejdzie do usługi w chmurze.

Okno przeglądarki ze stroną „hello world”; adres URL wskazuje, że strona jest obsługiwana na platformie Azure.

Aplikacja działa teraz na platformie Azure.

Polecenie cmdlet Publish-AzureServiceProject wykonuje następujące czynności:

  1. Tworzy pakiet do wdrożenia. Pakiet zawiera wszystkie pliki w folderze aplikacji.
  2. Tworzy nowe konto magazynu, jeśli nie istnieje. Konto magazynu Azure jest używane do przechowywania pakietu aplikacji podczas wdrażania. Po ukończeniu wdrażania konto magazynu można bezpiecznie usunąć.
  3. Tworzy nową usługę w chmurze, jeśli jeszcze nie istnieje. Usługa w chmurze to kontener, w którym aplikacja jest hostowana podczas wdrażania na platformie Azure. Aby uzyskać więcej informacji, zobacz Tworzenie hostowanej usługi platformy Azure — omówienie.
  4. Publikuje pakiet wdrożeniowy na platformie Azure.

Zatrzymywanie i usuwanie aplikacji

Po wdrożeniu aplikacji można ją wyłączyć, aby uniknąć dodatkowych kosztów. Opłaty za wystąpienia ról sieci Web na platformie Azure są naliczane za godzinę korzystania z serwera. Czas serwera jest używany po wdrożeniu aplikacji, nawet jeśli wystąpienia nie są uruchomione i są w stanie zatrzymanym.

  1. W oknie programu Windows PowerShell zatrzymaj wdrożenie usługi utworzone w poprzedniej sekcji za pomocą następującego polecenia cmdlet:

    Stop-AzureService
    

    Zatrzymywanie usługi może potrwać kilka minut. Po zatrzymaniu usługi zostanie wyświetlony komunikat z informacją o zatrzymaniu usługi.

    Stan polecenia Stop-AzureService

  2. Aby usunąć usługę, wywołaj następujące polecenie cmdlet:

    Remove-AzureService
    

    Po wyświetleniu monitu wpisz Y, aby usunąć usługę.

    Usuwanie usługi może potrwać kilka minut. Po usunięciu usługi zostanie wyświetlony komunikat informujący o tym, że usługa została usunięta.

    Stan polecenia Remove-AzureService

    Uwaga

    Usunięcie usługi nie powoduje usunięcia konta magazynu, które zostało utworzone po początkowym opublikowaniu usługi, a opłaty za użycie magazynu będą nadal naliczane. Jeśli nic innego nie korzysta z magazynu, możesz go usunąć.

Następne kroki

Aby uzyskać więcej informacji, odwiedź stronę Centrum deweloperów środowiska Node.js.