Hosten einer Node.js.-Anwendung in Azure Service FabricHost a Node.js application on Azure Service Fabric

Dieser Schnellstart dient Ihnen als Hilfe beim Bereitstellen einer vorhandenen Anwendung (hier: Node.js) für einen Service Fabric-Cluster, der in Azure ausgeführt wird.This quickstart helps you deploy an existing application (Node.js in this example) to a Service Fabric cluster running on Azure.

VoraussetzungenPrerequisites

Bevor Sie beginnen, stellen Sie sicher, dass Ihre Entwicklungsumgebung eingerichtet ist.Before you get started, make sure that you have set up your development environment. Dies umfasst auch das Installieren des Service Fabric SDK sowie von Visual Studio 2019 oder 2015.Which includes installing the Service Fabric SDK and Visual Studio 2019 or 2015.

Sie müssen auch über eine vorhandene Node.js-Anwendung für die Bereitstellung verfügen.You also need to have an existing Node.js application for deployment. In diesem Schnellstart wird eine einfache Node.js-Website verwendet, die Sie hier herunterladen können.This quickstart uses a simple Node.js website that can be downloaded here. Extrahieren Sie diese Datei in den Ordner <path-to-project>\ApplicationPackageRoot\<package-name>\Code\, nachdem Sie das Projekt im nächsten Schritt erstellt haben.Extract this file to your <path-to-project>\ApplicationPackageRoot\<package-name>\Code\ folder after you create the project in the next step.

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen.If you don't have an Azure subscription, create a free account.

Erstellen des DienstsCreate the service

Starten Sie Visual Studio als Administrator.Launch Visual Studio as an administrator.

Erstellen Sie mit CTRL+SHIFT+N ein Projekt.Create a project with CTRL+SHIFT+N

Wählen Sie im Dialogfeld Neues Projekt die Option Cloud > Service Fabric-Anwendung aus.In the New Project dialog, choose Cloud > Service Fabric Application.

Geben Sie der Anwendung den Namen MyGuestApp, und klicken Sie auf OK.Name the application MyGuestApp and press OK.

Wichtig

Bei Node.js kann es leicht passieren, dass für Pfade die maximale Zeichenzahl von 260 überschritten wird, die für Windows gilt.Node.js can easily break the 260 character limit for paths that windows has. Verwenden Sie für das eigentliche Projekt einen kurzen Pfad, z.B. c:\code\svc1.Use a short path for the project itself such as c:\code\svc1. Optional können Sie diese Anweisungen befolgen, um lange Dateipfade unter Windows 10 zuzulassen.Optionally, you can follow these instructions to enable long file paths in Windows 10.

Dialogfeld „Neues Projekt“ in Visual Studio

Mit dem nächsten Dialogfeld können Sie eine beliebige Art von Service Fabric-Dienst erstellen.You can create any type of Service Fabric service from the next dialog. Wählen Sie für diesen Schnellstart die Option Ausführbare Gastdatei.For this quickstart, choose Guest Executable.

Geben Sie dem Dienst den Namen MyGuestService, und legen Sie für die Optionen auf der rechten Seite die folgenden Werte fest:Name the service MyGuestService and set the options on the right to the following values:

EinstellungSetting valueValue
CodepaketordnerCode Package Folder <Ordner mit Ihrer Node.js-App><the folder with your Node.js app>
CodepaketverhaltenCode Package Behavior Ordnerinhalte in Projekt kopierenCopy folder contents to project
ProgrammProgram node.exenode.exe
ArgumenteArguments server.jsserver.js
ArbeitsordnerWorking Folder CodePackageCodePackage

Klicken Sie auf OK.Press OK.

Dialogfeld „Neuer Dienst“ in Visual Studio

Visual Studio erstellt das Anwendungsprojekt und das Actordienst-Projekt und zeigt sie im Projektmappen-Explorer an.Visual Studio creates the application project and the actor service project and displays them in Solution Explorer.

Das Anwendungsprojekt (MyGuestApp) enthält Code nicht direkt.The application project (MyGuestApp) doesn't contain any code directly. Das Projekt verweist auf eine Reihe von Dienstprojekten.The project references a set of service projects. Darüber hinaus enthält es drei weitere Arten von Inhalten:Also, it contains three other types of content:

  • VeröffentlichungsprofilePublish profiles
    Tooleinstellungen für verschiedene Umgebungen.Tooling preferences for different environments.

  • SkriptsScripts
    Ein PowerShell-Skript für die Bereitstellung bzw. Aktualisierung der Anwendung.PowerShell script for deploying/upgrading your application.

  • AnwendungsdefinitionApplication definition
    Enthält das Anwendungsmanifest unter ApplicationPackageRoot.Includes the application manifest under ApplicationPackageRoot. Die zugehörigen Anwendungsparameterdateien befinden sich unter ApplicationParameters. Sie definieren die Anwendung und ermöglichen es Ihnen, diese speziell für eine bestimmte Umgebung zu konfigurieren.Associated application parameter files are under ApplicationParameters, which define the application and allow you to configure it specifically for a given environment.

Eine Übersicht über den Inhalt des Dienstprojekts finden Sie unter Erste Schritte mit Reliable Services.For an overview of the contents of the service project, see Getting started with Reliable Services.

Einrichten von NetzwerkenSet up networking

In der von uns bereitgestellten Node.js-Beispiel-App wird Port 80 verwendet, und wir müssen Service Fabric mitteilen, dass dieser Port verfügbar gemacht werden muss.The example Node.js app we're deploying uses port 80 and we need to tell Service Fabric that we need that port exposed.

Öffnen Sie die Datei ServiceManifest.xml im Projekt.Open the ServiceManifest.xml file in the project. Unten im Manifests befindet sich ein <Resources> \ <Endpoints>-Element, für das bereits ein Eintrag definiert ist.At the bottom of the manifest, there's a <Resources> \ <Endpoints> with an entry already defined. Ändern Sie diesen Eintrag, um Port, Protocol und Type hinzuzufügen.Modify that entry to add Port, Protocol, and Type.

  <Resources>
    <Endpoints>
      <!-- This endpoint is used by the communication listener to obtain the port on which to 
           listen. Please note that if your service is partitioned, this port is shared with 
           replicas of different partitions that are placed in your code. -->
      <Endpoint Name="MyGuestAppServiceTypeEndpoint" Port="80" Protocol="http" Type="Input" />
    </Endpoints>
  </Resources>

Bereitstellen in AzureDeploy to Azure

Wenn Sie F5 drücken und das Projekt ausführen, wird es im lokalen Cluster bereitgestellt.If you press F5 and run the project, it's deployed to the local cluster. Wir führen stattdessen aber die Bereitstellung in Azure durch.However, let's deploy to Azure instead.

Klicken Sie mit der rechten Maustaste auf das Projekt, und wählen Sie Veröffentlichen... , um ein Dialogfeld für die Veröffentlichung in Azure zu öffnen.Right-click on the project and choose Publish... which opens a dialog to publish to Azure.

Dialogfeld zum Veröffentlichen in Azure für einen Service Fabric-Dienst

Wählen Sie das Zielprofil PublishProfiles\Cloud.xml.Select the PublishProfiles\Cloud.xml target profile.

Wählen Sie ein Azure-Konto für die Bereitstellung aus, falls Sie dies nicht bereits getan haben.If you haven't previously, choose an Azure account to deploy to. Wenn Sie noch kein Azure-Konto besitzen, können Sie sich dafür registrieren.If you don't have one yet, sign-up for one.

Wählen Sie unter Verbindungsendpunkt den Service Fabric-Cluster für die Bereitstellung aus.Under Connection Endpoint, select the Service Fabric cluster to deploy to. Falls kein Cluster vorhanden ist, wählen Sie die Option <Neuen Cluster erstellen...> aus, um ein Webbrowserfenster mit dem Azure-Portal zu öffnen.If you don't have one, select <Create New Cluster...> which opens up web browser window to the Azure portal. Weitere Informationen finden Sie unter Erstellen eines Service Fabric-Clusters in Azure über das Azure-Portal.For more information, see create a cluster in the portal.

Stellen Sie beim Erstellen des Service Fabric-Clusters sicher, dass Sie die Einstellung Benutzerdefinierte Endpunkte auf 80 festlegen.When you create the Service Fabric cluster, make sure to set the Custom endpoints setting to 80.

Konfiguration des Service Fabric-Knotentyps mit benutzerdefiniertem Endpunkt

Die Erstellung eines neuen Service Fabric-Clusters nimmt einige Zeit in Anspruch.Creating a new Service Fabric cluster takes some time to complete. Navigieren Sie nach der Erstellung zurück zum Dialogfeld für die Veröffentlichung, und wählen Sie die Option <Aktualisieren> .Once it has been created, go back to the publish dialog and select <Refresh>. Der neue Cluster ist im Dropdownfeld aufgeführt. Wählen Sie ihn aus.The new cluster is listed in the drop-down box; select it.

Klicken Sie auf Veröffentlichen, und warten Sie, bis die Bereitstellung abgeschlossen ist.Press Publish and wait for the deployment to finish.

Dies kann einige Minuten dauern.This may take a few minutes. Nach Abschluss des Vorgangs kann es einige weitere Minuten dauern, bis die Anwendung vollständig verfügbar ist.After it completes, it may take a few more minutes for the application to be fully available.

Testen der WebsiteTest the website

Testen Sie Ihren Dienst in einem Webbrowser, nachdem er veröffentlicht wurde.After your service has been published, test it in a web browser.

Öffnen Sie zuerst das Azure-Portal, und suchen Sie nach Ihrem Service Fabric-Dienst.First, open the Azure portal and find your Service Fabric service.

Überprüfen Sie das Blatt „Übersicht“ der Dienstadresse.Check the overview blade of the service address. Verwenden Sie den Domänennamen aus der Eigenschaft Endpunkt für Clientverbindungen.Use the domain name from the Client connection endpoint property. Beispiel: http://mysvcfab1.westus2.cloudapp.azure.com.For example, http://mysvcfab1.westus2.cloudapp.azure.com.

Blatt mit Service Fabric-Übersicht im Azure-Portal

Navigieren Sie zu dieser Adresse – dort wird die Antwort HELLO WORLD angezeigt.Navigate to this address where you'll see the HELLO WORLD response.

Löschen des ClustersDelete the cluster

Denken Sie daran, alle Ressourcen zu löschen, die Sie für diese Schnellstartanleitung erstellt haben, da für diese Ressourcen Gebühren berechnet werden.Don't forget to delete all of the resources you've created for this quickstart, as you're charged for those resources.

Nächste SchritteNext steps

Informieren Sie sich eingehender über ausführbare Gastanwendungsdateien.Read more about guest executables.