Hospedaje de una aplicación de Node.js en Azure Service FabricHost a Node.js application on Azure Service Fabric

Esta guía de inicio rápido le ayudará a implementar una aplicación existente (Node.js en este ejemplo) en un clúster de Service Fabric que se ejecuta en Azure.This quickstart helps you deploy an existing application (Node.js in this example) to a Service Fabric cluster running on Azure.

PrerrequisitosPrerequisites

Antes de comenzar, asegúrese de haber configurado el entorno de desarrollo.Before you get started, make sure that you have set up your development environment. Esto también incluye la instalación del SDK de Service Fabric y Visual Studio 2019 o 2015.Which includes installing the Service Fabric SDK and Visual Studio 2019 or 2015.

También es preciso que tenga una aplicación de Node.js existente para la implementación.You also need to have an existing Node.js application for deployment. Este inicio rápido usa un sitio web en Node.js simple que se puede descargar aquí.This quickstart uses a simple Node.js website that can be downloaded here. Extraiga este archivo en su carpeta <path-to-project>\ApplicationPackageRoot\<package-name>\Code\ después de crear el proyecto en el paso siguiente.Extract this file to your <path-to-project>\ApplicationPackageRoot\<package-name>\Code\ folder after you create the project in the next step.

Si no tiene una suscripción a Azure, cree una cuenta gratuita.If you don't have an Azure subscription, create a free account.

Creación del servicioCreate the service

Inicie Visual Studio como administrador.Launch Visual Studio as an administrator.

Creación de un proyecto con CTRL+SHIFT+NCreate a project with CTRL+SHIFT+N

En el cuadro de diálogo Nuevo proyecto, elija Nube > Aplicación de Service Fabric.In the New Project dialog, choose Cloud > Service Fabric Application.

Asigne el nombre MyGuestApp a la aplicación y presione Aceptar.Name the application MyGuestApp and press OK.

Importante

Node.js puede superar fácilmente el límite de 260 caracteres en las rutas de acceso que tiene Windows.Node.js can easily break the 260 character limit for paths that windows has. Use una ruta de acceso corta para el propio proyecto como c:\code\svc1.Use a short path for the project itself such as c:\code\svc1. Si lo desea, puede seguir estas instrucciones para habilitar las rutas de acceso de archivo largas en Windows 10.Optionally, you can follow these instructions to enable long file paths in Windows 10.

Cuadro de diálogo de proyecto nuevo en Visual Studio

Puede crear cualquier tipo de servicio de Service Fabric en el cuadro de diálogo siguiente.You can create any type of Service Fabric service from the next dialog. Para esta guía de inicio rápido, elija Archivo ejecutable invitado.For this quickstart, choose Guest Executable.

Asigne al servicio el nombre MyGuestService y elija los siguientes valores en las opciones de la derecha:Name the service MyGuestService and set the options on the right to the following values:

ConfiguraciónSetting ValueValue
Carpeta del paquete de códigoCode Package Folder <la carpeta con la aplicación de Node.js><the folder with your Node.js app>
Comportamiento del paquete de códigoCode Package Behavior Copie el contenido de la carpeta al proyectoCopy folder contents to project
ProgramaProgram node.exenode.exe
ArgumentosArguments server.jsserver.js
Carpeta de trabajoWorking Folder CodePackageCodePackage

Presione Aceptar.Press OK.

Cuadro de diálogo de servicio nuevo en Visual Studio.

Visual Studio crea el proyecto de la aplicación y el proyecto de servicio de actor y los muestra en el Explorador de soluciones.Visual Studio creates the application project and the actor service project and displays them in Solution Explorer.

El proyecto de la aplicación (MyGuestApp) no contiene código directamente.The application project (MyGuestApp) doesn't contain any code directly. En su lugar, hace referencia a un conjunto de proyectos de servicio.The project references a set of service projects. Además, contiene otros tres tipos de contenido:Also, it contains three other types of content:

  • Perfiles de publicaciónPublish profiles
    Preferencias en cuanto a las herramientas para los diferentes entornos.Tooling preferences for different environments.

  • ScriptsScripts
    Script de PowerShell para implementar o actualizar la aplicación.PowerShell script for deploying/upgrading your application.

  • Definición de la aplicaciónApplication definition
    Incluye el manifiesto de aplicación en ApplicationPackageRoot.Includes the application manifest under ApplicationPackageRoot. Los archivos de aplicación asociados se encuentran en ApplicationParameters, donde se define la aplicación y se la puede configurar específicamente para un entorno determinado.Associated application parameter files are under ApplicationParameters, which define the application and allow you to configure it specifically for a given environment.

Para obtener información general del contenido del proyecto de servicio, consulte Introducción a Reliable Services de Microsoft Azure Service Fabric.For an overview of the contents of the service project, see Getting started with Reliable Services.

Configuración de las redesSet up networking

La aplicación de Node.js de ejemplo que estamos implementando utiliza el puerto 80 y necesitamos indicar a Service Fabric que el puerto está expuesto.The example Node.js app we're deploying uses port 80 and we need to tell Service Fabric that we need that port exposed.

Abra el archivo ServiceManifest.xml en el proyecto.Open the ServiceManifest.xml file in the project. En la parte inferior del manifiesto, hay un conjunto <Resources> \ <Endpoints> con una entrada ya definida.At the bottom of the manifest, there's a <Resources> \ <Endpoints> with an entry already defined. Modifique dicha entrada para agregar Port, Protocol y Type.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>

Implementar en AzureDeploy to Azure

Si presiona F5 y ejecuta el proyecto, este se implementa en el clúster local.If you press F5 and run the project, it's deployed to the local cluster. Sin embargo, vamos a implementarlo en Azure.However, let's deploy to Azure instead.

Haga clic con el botón derecho en el proyecto y elija Publicar... , lo que abre un cuadro de diálogo para publicar en Azure.Right-click on the project and choose Publish... which opens a dialog to publish to Azure.

Cuadro de diálogo Publicar en Azure para un servicio de Service Fabric

Seleccione el perfil de destino PublishProfiles\Cloud.xml.Select the PublishProfiles\Cloud.xml target profile.

Si no lo ha hecho aún, elija la cuenta de Azure en la que va a realizar la implementación.If you haven't previously, choose an Azure account to deploy to. Si aún no tiene ninguno, regístrese para obtenerlo.If you don't have one yet, sign-up for one.

En Punto de conexión, seleccione el clúster de Service Fabric en que se va a realizar la implementación.Under Connection Endpoint, select the Service Fabric cluster to deploy to. Si no tiene ninguno, seleccione <Crear nuevo clúster... > y se abrirá una ventana del explorador en Azure Portal.If you don't have one, select <Create New Cluster...> which opens up web browser window to the Azure portal. Para más información, consulte Creación de un clúster en Azure Portal.For more information, see create a cluster in the portal.

Al crear el clúster de Service Fabric, asegúrese de establecer la opción Puntos de conexión personalizados en 80.When you create the Service Fabric cluster, make sure to set the Custom endpoints setting to 80.

Configuración del tipo de nodo de Service Fabric con el punto de conexión personalizado

La creación de un clúster de Service Fabric nuevo tarda un tiempo en completarse.Creating a new Service Fabric cluster takes some time to complete. Una vez que se haya creado, vuelva al cuadro de diálogo Publicar y seleccione <Actualizar> .Once it has been created, go back to the publish dialog and select <Refresh>. El nuevo clúster se enumera en el cuadro de lista desplegable; selecciónelo.The new cluster is listed in the drop-down box; select it.

Pulse Publicar y espere a que finalice la implementación.Press Publish and wait for the deployment to finish.

Esta operación puede tardar unos minutos.This may take a few minutes. Una vez que se completa, la aplicación puede tardar unos minutos en estar totalmente disponible.After it completes, it may take a few more minutes for the application to be fully available.

Prueba del sitio webTest the website

Una vez publicado su servicio, pruébelo en un explorador web.After your service has been published, test it in a web browser.

En primer lugar, abra Azure Portal y busque el servicio Service Fabric.First, open the Azure portal and find your Service Fabric service.

Compruebe la hoja de información general de la dirección del servicio.Check the overview blade of the service address. Use el nombre de dominio de la propiedad Punto de conexión del cliente.Use the domain name from the Client connection endpoint property. Por ejemplo, http://mysvcfab1.westus2.cloudapp.azure.com.For example, http://mysvcfab1.westus2.cloudapp.azure.com.

Hoja de información general de Service Fabric en Azure Portal

Navegue hasta esta dirección, donde verá la respuesta de HELLO WORLD.Navigate to this address where you'll see the HELLO WORLD response.

Eliminación del clústerDelete the cluster

No olvide eliminar todos los recursos que haya creado para este inicio rápido, ya que se le cobran.Don't forget to delete all of the resources you've created for this quickstart, as you're charged for those resources.

Pasos siguientesNext steps

Más información sobre ejecutables de invitado.Read more about guest executables.