Erstellen und Bereitstellen einer Node.js-Anwendung in einem Azure-Clouddienst (klassisch)

Wichtig

Cloud Services (klassisch) ist jetzt ab dem 1. September 2024 für alle Kunden veraltet. Alle vorhandenen ausgeführten Bereitstellungen werden beendet und von Microsoft heruntergefahren, und die Daten gehen ab Oktober 2024 dauerhaft verloren. In neuen Bereitstellungen sollte das neue auf Azure Resource Manager basierende Bereitstellungsmodell für Azure Cloud Services (erweiterter Support) verwendet werden.

Dieses Tutorial veranschaulicht, wie Sie eine Node.js-Anwendung erstellen, die in einem Azure-Clouddienst ausgeführt wird. Clouddienste sind die Bausteine skalierbarer Cloudanwendungen in Azure. Sie ermöglichen die Trennung und unabhängige Verwaltung und Skalierung von Front-End- und Back-End-Komponenten von Anwendungen. Clouddienste bieten stabile und dedizierte virtuelle Computer, um jede Rolle zuverlässig zu hosten.

Tipp

Möchten Sie eine Website erstellen? Wenn Ihr Szenario nur ein einfaches Website-Front-End umfasst, sollten Sie die Verwendung einer einfachen Web-App in Betracht ziehen. Sie können einen Clouddienst mühelos aktualisieren, wenn die Web-App größer wird und sich Ihre Anforderungen ändern.

In diesem Tutorial erstellen Sie eine Webanwendung, die in einer Webrolle gehostet wird. Sie verwenden den Computeemulator, um die Anwendung lokal zu testen. Anschließend stellen Sie sie mithilfe der PowerShell-Befehlszeilentools bereit.

Die Anwendung ist eine „Hallo Welt“-Anwendung:

Ein Webbrowser, der die Hallo Welt-Webseite anzeigt

Voraussetzungen

Hinweis

In diesem Lernprogramm wird Azure PowerShell verwendet, für die Windows installiert sein muss.

  • Installieren und Konfigurieren von Azure PowerShell.
  • Herunterladen und Installieren des [Azure SDK für .NET 2.7]. Wählen Sie während der Installationseinrichtung Folgendes:
    • MicrosoftAzureAuthoringTools
    • MicrosoftAzureComputeEmulator

Erstellen eines Azure-Clouddienstprojekts

Führen Sie folgende Aufgaben durch, um ein neues Azure-Clouddienstprojekt sowie ein einfaches Node.js-Gerüst zu erstellen:

  1. Führen Sie Windows PowerShell als Administrator aus. Suchen Sie im Startmenü oder auf dem Startbildschirm nach Windows PowerShell.

  2. Stellen Sie eine PowerShell-Verbindung mit Ihrem Abonnement her.

  3. Geben Sie das folgende PowerShell-Cmdlet ein, um das Projekt zu erstellen:

    New-AzureServiceProject helloworld
    

    Ergebnis des New-AzureService-Hallowelt-Befehls

    Das New-AzureServiceProject -Cmdlet generiert eine einfache Struktur für die Veröffentlichung einer Node.js-Anwendung in einem Clouddienst. Darin sind Konfigurationsdateien enthalten, die für die Veröffentlichung in Azure erforderlich sind. Das Cmdlet ändert zudem das Arbeitsverzeichnis in das Verzeichnis des Diensts.

    Das Cmdlet erstellt die folgenden Dateien:

    • ServiceConfiguration.Cloud.cscfg, ServiceConfiguration.Local.cscfg und ServiceDefinition.csdef: Dies sind Azure-spezifische Dateien, die für die Veröffentlichung der Anwendung erforderlich sind. Weitere Informationen erhalten Sie unter Übersicht zum Erstellen eines gehosteten Diensts für Azure.
    • deploymentSettings.jsonspeichert lokale Einstellungen, die von den Azure PowerShell-Bereitstellungs-Cmdlets verwendet werden.
  4. Geben Sie den folgenden Befehl zum Hinzufügen einer neuen Webrolle ein:

    Add-AzureNodeWebRole
    

    Das Ergebnis des Add-AzureNodeWebRole-Befehls

    Das Add-AzureNodeWebRole -Cmdlet erstellt eine einfache Node.js-Anwendung. Zudem ändert es die CSFG- und CSDEF-Dateien, um Konfigurationseinträge für die neue Rolle hinzuzufügen.

    Hinweis

    Wenn Sie keinen Rollennamen angeben, wird ein Standardname verwendet. Sie können einen Namen als ersten Cmdlet-Parameter angeben: Add-AzureNodeWebRole MyRole

Die Node.js-App wird in der Datei server.js im Verzeichnis für die Webrolle (Standardeinstellung: WebRole1) definiert. Hier ist der -Code:

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);

Dieser Code ist im Wesentlichen identisch mit dem Beispiel "Hello World" auf der nodejs.org -Website, mit der Ausnahme, dass die von der Cloudumgebung zugewiesene Portnummer verwendet wird.

Bereitstellen der Anwendung für Azure

Hinweis

Um dieses Tutorial abzuschließen, benötigen Sie ein Azure-Konto. Sie können Ihre MSDN-Abonnentenleistungen aktivieren oder sich für ein kostenloses Testkonto registrieren.

Herunterladen der Azure-Veröffentlichungseinstellungen

Um die Anwendung in Azure bereitzustellen, müssen Sie zuerst die Veröffentlichungseinstellungen für Ihr Azure-Abonnement herunterladen.

  1. Führen Sie das folgende Azure PowerShell-Cmdlet aus:

    Get-AzurePublishSettingsFile
    

    Bei diesem Befehl wird Ihr Browser für die Navigation zur Downloadseite mit den Veröffentlichungseinstellungen verwendet. Sie werden möglicherweise aufgefordert, sich mit einem Microsoft-Konto anzumelden. Verwenden Sie in diesem Fall das mit Ihrem Azure-Abonnement verknüpfte Konto.

    Speichern Sie das heruntergeladene Profil an einem Datenspeicherort, auf den Sie leicht zugreifen können.

  2. Führen Sie das folgende Cmdlet aus, um das heruntergeladene Veröffentlichungsprofil zu importieren:

    Import-AzurePublishSettingsFile [path to file]
    

    Hinweis

    Nach dem Importieren der Veröffentlichungseinstellungen empfiehlt es sich, die heruntergeladene .publishSettings-Datei zu löschen, da sie Informationen enthält, die von anderen Personen für den Zugriff auf Ihr Konto verwendet werden können.

Veröffentlichen der Anwendung

Führen Sie zum Veröffentlichen die folgenden Befehle aus:

$ServiceName = "NodeHelloWorld" + $(Get-Date -Format ('ddhhmm'))
Publish-AzureServiceProject -ServiceName $ServiceName  -Location "East US" -Launch
  • -ServiceName gibt den Namen für die Bereitstellung an. Dieser Wert muss ein eindeutiger Name sein, andernfalls schlägt der Veröffentlichungsvorgang fehl. Der Befehl Get-Date fügt eine Datum-/Uhrzeit-Zeichenfolge an, die den Namen eindeutig macht.
  • -Location gibt das Rechenzentrum an, in dem die Anwendung gehostet wird. Um eine Liste der verfügbaren Datencenter anzuzeigen, verwenden Sie das Get-AzureLocation -Cmdlet.
  • -Launch öffnet nach Abschluss der Bereitstellung ein Browserfenster und navigiert zum gehosteten Dienst.

Nach der erfolgreichen Veröffentlichung wird eine Antwort ähnlich dem folgenden Screenshot angezeigt:

Das Ergebnis des Publish-AzureService-Befehls

Hinweis

Es kann nach der ersten Veröffentlichung fünf bis sieben Minuten dauern, bis die Anwendung bereitgestellt wird und verfügbar ist.

Nach Abschluss der Bereitstellung wird ein Browserfenster geöffnet und zum Clouddienst navigiert.

Ein Browserfenster mit der Seite „Hello World“. Die URL weist darauf hin, dass die Seite in Azure gehostet wird.

Ihre Anwendung wird jetzt in Azure ausgeführt.

Das Cmdlet Publish-AzureServiceProject führt folgende Schritte aus:

  1. Erstellt ein Paket zum Bereitstellen. Das Paket enthält alle Dateien im Anwendungsordner.
  2. Erstellt ein neues Speicherkonto, sofern noch keines vorhanden ist. Das Azure-Speicherkonto wird verwendet, um das Anwendungspaket während der Bereitstellung zu speichern. Sie können das Speicherkonto problemlos löschen, wenn die Bereitstellung erfolgt ist.
  3. Erstellt einen neuen Clouddienst, falls noch keiner vorhanden ist. Ein Clouddienst ist der Container, in dem Ihre Anwendung gehostet wird, wenn sie in Azure bereitgestellt wird. Weitere Informationen erhalten Sie unter Übersicht zum Erstellen eines gehosteten Diensts für Azure.
  4. Veröffentlicht das Bereitstellungspaket in Azure.

Beenden und Löschen Ihrer Anwendung

Nachdem Sie Ihre Anwendung bereitgestellt haben, möchten Sie diese möglicherweise deaktivieren, um Extrakosten zu vermeiden. Azure berechnet Webrolleninstanzen pro Stunde verbrauchter Serverzeit. Serverzeit wird genutzt, sobald die Anwendung bereitgestellt wird, selbst wenn die Instanzen nicht ausgeführt werden und sich im Status „Beendet“ befinden.

  1. Stoppen Sie im Windows PowerShell-Fenster die im vorherigen Abschnitt erstellte Dienstbereitstellung mit folgendem Cmdlet:

    Stop-AzureService
    

    Das Stoppen des Diensts kann einige Minuten dauern. Wenn der Dienst gestoppt wurde, erhalten Sie eine entsprechende Nachricht.

    Der Status des Stop-AzureService-Befehls

  2. Um den Dienst zu löschen, rufen Sie folgendes Cmdlet auf:

    Remove-AzureService
    

    Geben Sie nach entsprechender Aufforderung Y ein, um den Dienst zu löschen.

    Das Löschen des Diensts kann einige Minuten dauern. Nachdem Sie den Dienst gelöscht haben, erhalten Sie eine entsprechende Nachricht.

    Der Status des Remove-AzureService-Befehls

    Hinweis

    Durch das Löschen dieses Diensts wird das Speicherkonto, das beim erstmaligen Veröffentlichen des Diensts erstellt wurde, nicht gelöscht, und Sie erhalten weiterhin eine Rechnung über den verwendeten Speicherplatz. Wird der Speicher nicht anderweitig verwendet, empfiehlt es sich unter Umständen, ihn zu löschen.

Nächste Schritte

Weitere Informationen finden Sie im Node.js Developer Center.