Hospedaje de una aplicación de Node.js en 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.

Prerrequisitos

Antes de empezar, asegúrese de se haya configurado el entorno de desarrollo, que incluye la instalación del SDK de Service Fabric y Visual Studio 2019 o 2015.

También es preciso que tenga una aplicación de Node.js existente para la implementación. Este inicio rápido usa un sitio web en Node.js simple que se puede descargar aquí. Extraiga este archivo en su carpeta <path-to-project>\ApplicationPackageRoot\<package-name>\Code\ después de crear el proyecto en el paso siguiente.

Si no tiene una suscripción a Azure, cree una cuenta gratuita.

Creación del servicio

Inicie Visual Studio como administrador.

Creación de un proyecto con CTRL+SHIFT+N

En el cuadro de diálogo Nuevo proyecto, seleccione Nube > Aplicación de Service Fabric.

Asigne el nombre MyGuestApp a la aplicación y presione Crear.

Importante

Node.js puede superar fácilmente el límite de 260 caracteres en las rutas de acceso que tiene Windows. Use una ruta de acceso corta para el propio proyecto como c:\code\svc1. Si lo desea, puede seguir estas instrucciones para habilitar las rutas de acceso de archivo largas en 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. Para esta guía de inicio rápido, elija Archivo ejecutable invitado.

Asigne al servicio el nombre MyGuestService y elija los siguientes valores en las opciones de la derecha:

Configuración Value
Carpeta del paquete de código <la carpeta con la aplicación de Node.js>
Comportamiento del paquete de código Copie el contenido de la carpeta al proyecto
Programa node.exe
Argumentos server.js
Carpeta de trabajo CodePackage

Presione Aceptar.

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.

El proyecto de la aplicación (MyGuestApp) no contiene código directamente. En su lugar, hace referencia a un conjunto de proyectos de servicio. Además, contiene otros tres tipos de contenido:

  • Perfiles de publicación
    Preferencias en cuanto a las herramientas para los diferentes entornos.

  • Scripts
    Script de PowerShell para implementar o actualizar la aplicación.

  • Definición de la aplicación
    Incluye el manifiesto de aplicación en 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.

Para obtener información general del contenido del proyecto de servicio, consulte Introducción a Reliable Services de Microsoft Azure Service Fabric.

Configuración de las redes

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.

Abra el archivo ServiceManifest.xml en el proyecto. En la parte inferior del manifiesto, hay un conjunto <Resources> \ <Endpoints> con una entrada ya definida. Modifique dicha entrada para agregar Port, Protocol y 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 Azure

Si presiona F5 y ejecuta el proyecto, este se implementa en el clúster local. Sin embargo, vamos a implementarlo en Azure.

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.

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

Seleccione el perfil de destino PublishProfiles\Cloud.xml.

Si no lo ha hecho aún, elija la cuenta de Azure en la que va a realizar la implementación. Si aún no tiene ninguno, regístrese para obtenerlo.

En Punto de conexión, seleccione el clúster de Service Fabric en que se va a realizar la implementación. Si no tiene ninguno, seleccione <Crear nuevo clúster... > y se abrirá una ventana del explorador en Azure Portal. Para más información, consulte Creación de un clúster en Azure Portal.

Al crear el clúster de Service Fabric, asegúrese de establecer la opción Puntos de conexión personalizados en 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. Una vez que se haya creado, vuelva al cuadro de diálogo Publicar y seleccione <Actualizar> . El nuevo clúster se enumera en el cuadro de lista desplegable; selecciónelo.

Pulse Publicar y espere a que finalice la implementación.

Esta operación puede tardar unos minutos. Una vez que se completa, la aplicación puede tardar unos minutos en estar totalmente disponible.

Prueba del sitio web

Una vez publicado su servicio, pruébelo en un explorador web.

En primer lugar, abra Azure Portal y busque el servicio Service Fabric.

Compruebe la hoja de información general de la dirección del servicio. Use el nombre de dominio de la propiedad Punto de conexión del cliente. Por ejemplo, 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.

Eliminación del clúster

No olvide eliminar todos los recursos que haya creado para este inicio rápido, ya que se le cobran.

Pasos siguientes

Más información sobre ejecutables de invitado.