Creación de una aplicación web de Node.js en Azure


Es relativamente sencillo como vamos a ver , implementar una aplicación en App Service en Windows  gracias  a queAzure Web Apps proporciona un servicio de hospedaje web muy escalable y con aplicación de revisiones de un modo automático.

 

Aplicación de ejemplo que se ejecuta en Azure

Estos pasos se pueden realizar con una máquina Mac, Windows o Linux,pero lo importante de la magia del Cloud, una vez instalados los requisitos previos, tardará aproximadamente cinco minutos en completar los pasos.

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar. Asimismo  tambien necesitará  completar esta guía de inicio rápido :instalación de Node.js y NPM

Descarga del ejemplo

Descargue el proyecto de ejemplo de Node.js de https://github.com/Azure-Samples/nodejs-docs-hello-world/archive/master.zip y extraiga el archivo ZIP.

En una ventana de terminal, vaya al directorio raíz del proyecto de ejemplo de Node.js (el que contiene index.php).

Ejecución de la aplicación de forma local

Ejecute la aplicación localmente abriendo una ventana de terminal y utilizando el script npm start para iniciar el servidor HTTP de Node.js integrado.

npm start

Abra un explorador web y vaya a la aplicación de ejemplo en http://localhost:1337.

Verá el mensaje Hola mundo de la aplicación de ejemplo que aparece en la página.

Aplicación de ejemplo que se ejecuta localmente

En la ventana de terminal, presione Ctrl + C para salir del servidor web.

Creación de un archivo ZIP de proyecto

Cree un archivo ZIP con todo el contenido del proyecto. El siguiente comando usa la herramienta predeterminada de su terminal:

# Bash
zip -r myAppFiles.zip .

# PowerShell
Compress-Archive -Path * -DestinationPath myAppFiles.zip

Posteriormente, cargue el archivo ZIP en Azure e impleméntelo en App Service.

Inicio de Azure Cloud Shell

Azure Cloud Shell proporcina  un shell interactivo gratuito que puede usar para ejecutar los pasos que vamos a ver .  Tiene las herramientas comunes de Azure preinstaladas y configuradas para usarlas en la cuenta. Simplemente haga clic en el botón Copiar para copiar el código, péguelo en la instancia de Cloud Shell y, a continuación, presione Entrar para ejecutarlo.

 

Hay varias  maneras de iniciar Cloud Shell:

Haga clic en Probarlo en la esquina superior derecha de un bloque de código. Cloud Shell en este artículo
Abra Cloud Shell en el explorador. https://shell.azure.com/bash
Haga clic en el botón Cloud Shell en el menú de la parte superior derecha de Azure Portal. Cloud Shell en el portal

Crear un grupo de recursos

Un grupo de recursos es un contenedor lógico en el que se implementan y administran recursos de Azure como aplicaciones web, bases de datos y cuentas de almacenamiento. Por ejemplo, más adelante puede elegir eliminar todo el grupo de recursos en un solo paso.

En Cloud Shell, cree un grupo de recursos con el comando az group create. En el ejemplo siguiente, se crea un grupo de recursos denominado myResourceGroup en la ubicación Europa Occidental. Para ver todas las ubicaciones que se admiten en App Service en el nivel Gratis, ejecute el comando az appservice list-locations --sku F1.

Desde Azure CLI   pruebe el comando:
az group create --name myResourceGroup --location "West Europe"

Generalmente se crean el grupo de recursos y los recursos en una región cercana.

Cuando finaliza el comando, una salida de JSON muestra las propiedades del grupo de recursos.

Crear un plan de Azure App Service

En Cloud Shell, cree un plan de App Service con el comando az appservice plan create.

En el siguiente ejemplo se crea un plan de App Service denominado myAppServicePlan con el plan de tarifa Gratis:

Desde Azure CLI   pruebe el comando:
az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku FREE

Cuando se ha creado el plan de App Service, la CLI de Azure muestra información en formato json similar al ejemplo siguiente :

{ 
  "adminSiteName": null,
  "appServicePlanName": "myAppServicePlan",
  "geoRegion": "West Europe",
  "hostingEnvironmentProfile": null,
  "id": "/subscriptions/0000-0000/resourceGroups/myResourceGroup/providers/Microsoft.Web/serverfarms/myAppServicePlan",
  "kind": "app",
  "location": "West Europe",
  "maximumNumberOfWorkers": 1,
  "name": "myAppServicePlan",
  < JSON data removed for brevity. >
  "targetWorkerSizeId": 0,
  "type": "Microsoft.Web/serverfarms",
  "workerTierName": null
} 

Creación de una aplicación web

En Cloud Shell, cree una aplicación web en el plan de App Service myAppServicePlan con el comando az webapp create.

En el siguiente ejemplo, reemplace  por un nombre único global de aplicación (los caracteres válidos son a-z0-9 y -). El tiempo de ejecución se establece en NODE|6.9. Para ver todos los entornos en tiempo de ejecución admitidos, ejecute az webapp list-runtimes.

Desde Azure CLI   pruebe el comando:
az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name  --runtime "NODE|6.9"

Cuando se haya creado la aplicación web, la CLI de Azure mostrará información  en formato json similar a la del ejemplo siguiente:

{
  "availabilityState": "Normal",
  "clientAffinityEnabled": true,
  "clientCertEnabled": false,
  "cloningInfo": null,
  "containerSize": 0,
  "dailyMemoryTimeQuota": 0,
  "defaultHostName": ".azurewebsites.net",
  "enabled": true,
  < JSON data removed for brevity. >
}

Vaya a la aplicación web recién creada. Reemplace  por el  nombre de su aplicación único.

http://xxxxxxx.azurewebsites.net

Este es el aspecto que debería tener su nueva aplicación web:

Página de la aplicación web vacía

Implementación de un archivo ZIP

En el explorador, vaya a https://xxxx.scm.azurewebsites.net/ZipDeploy.

Cargue el archivo ZIP que creó en Creación de un archivo ZIP de proyecto arrastrándolo al área del explorador de archivos en la página web.

Cuando la implementación está en curso, un icono en la esquina superior derecha muestra el progreso como un porcentaje. La página también muestra mensajes detallados para la operación debajo del área del explorador. Cuando se haya completado, el último mensaje de implementación debe indicar Deployment successful.

Navegación hasta la aplicación

Vaya a la aplicación implementada mediante el explorador web.

http://xxxxx.azurewebsites.net

El código de ejemplo de Node.js se está ejecutando en una aplicación web de Azure App Service.

Aplicación de ejemplo que se ejecuta en Azure

¡Enhorabuena! Ha implementado la primera aplicación de Node.js en App Service.

Actualización del código y nueva implementación

Con un editor de texto, abra el archivo index.js en la aplicación de Node.js puede realizar un pequeño cambio en el texto en la llamada a response.end:

response.end("Hello Azure!");

En la ventana de terminal local, desplácese al directorio raíz de la aplicación y cree un nuevo archivo ZIP para el proyecto actualizado.

# Bash
zip -r myUpdatedAppFiles.zip .

# PowerShell
Compress-Archive -Path * -DestinationPath myUpdatedAppFiles.zip

Implemente este nuevo archivo ZIP en App Service utilizando los mismos pasos que en Cargar el archivo ZIP.

Vuelva a la ventana del explorador que se abrió en el paso Navegación hasta la aplicación y actualice la página.

Aplicación de ejemplo actualizada que se ejecuta en Azure

Administración de la nueva aplicación web de Azure

Vaya al portarl de  Azure  para administrar la aplicación web que ha creado.

En el menú izquierdo, haga clic en App Services y, a continuación, haga clic en el nombre de la aplicación web de Azure.

Navegación desde el portal a la aplicación web de Azure

Podrá ver la página de información general de la aplicación web. En este caso, puede realizar tareas de administración básicas como examinar, detener, iniciar, reiniciar y eliminar.

Página de App Service en Azure Portal

El menú izquierdo proporciona distintas páginas para configurar la aplicación.

Limpieza de recursos

En los pasos anteriores, creó en Azure en un grupo de recursos. Si prevé que no necesitará estos recursos en el futuro, elimine el grupo de recursos ejecutando el siguiente comando en Cloud Shell:

az group delete --name myResourceGroup

Este comando puede tardar varios segundos en ejecutarse.

Fuente https://docs.microsoft.com/es-es/azure/app-service/app-service-web-get-started-nodejs