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

Ważne

Cloud Services (wersja klasyczna) jest teraz przestarzała dla nowych klientów i zostanie wycofana 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 Azure Cloud Services (wsparcie dodatkowe).

Ten samouczek pokazuje, jak utworzyć prostą aplikację Node.js działającą w usłudze w chmurze 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.

Dalsze informacje na temat usług Cloud Services oraz ich porównanie z usługami Witryny sieci Web i Maszyny wirtualne Azure można znaleźć w temacie Porównanie usług Azure: Witryny sieci Web, Cloud Services i Virtual Machines.

Porada

Chcesz utworzyć prostą witrynę sieci Web? 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ń.

Wykonując czynności opisane w tym samouczku, utworzysz prostą aplikację internetową hostowaną wewnątrz roli internetowej. Będziesz testować aplikację w środowisku lokalnym przy użyciu emulatora obliczeń, a następnie wdrażać ją za pomocą narzędzi wiersza polecenia programu PowerShell.

Będzie to prosta aplikacja „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 Azure PowerShell.
  • Pobierz i zainstaluj zestaw [Azure SDK dla platformy .NET 2.7]. Podczas instalacji wybierz następujące opcje:
    • 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
    

    Spowoduje to przejście do strony pobierania ustawień publikowania w przeglądarce. Może pojawić się 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. Musi być to nazwa unikatowa. W przeciwnym razie proces publikowania zakończy się niepowodzeniem. Polecenie Get-Date uwzględnia ciąg daty i godziny, który powinien zapewnić unikatowość nazwy.
  • -Location — określa centrum danych, w którym aplikacja będzie hostowana. Aby wyświetlić listę dostępnych centrów danych, użyj polecenia cmdlet Get-AzureLocation.
  • -Launch — otwiera okno przeglądarki i przechodzi do usługi hostowanej po zakończeniu wdrożenia.

Po pomyślnym zakończeniu publikowania zostanie wyświetlona odpowiedź podobna do następującej:

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 wdrożenia zostanie otwarte okno przeglądarki i nastąpi przejście 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 takie konto jeszcze 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 taka usługa jeszcze nie istnieje. Usługa w chmurze to kontener, w którym aplikacja jest hostowana po wdrożeniu 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 zostały uruchomione i są w stanie zatrzymania.

  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 pojawi się komunikat wskazujący, że usługa została zatrzymana.

    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 pojawi się komunikat z informacją, ż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.