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

En este inicio rápido, aprenderá a crear e implementar su primera aplicación web de Node.js (Express) en Azure App Service. App Service admite varias versiones de Node.js en Linux y Windows.

Los pasos de CLI de Azure en este inicio rápido utilizan el nivel premium v3 de pago. Los pasos de Visual Studio Code y del portal de Azure muestran cómo usar el nivel gratuito.

En este vídeo se muestra cómo implementar una aplicación web Node.js en Azure.

Los pasos del vídeo también se describen en las secciones siguientes.

Configuración del entorno inicial

  • Disponga de una cuenta de Azure con una suscripción activa. En caso de no tener una, puede crear una cuenta gratuita.
  • Instalación de Node.js LTS. Ejecute el comando node --version para comprobar que Node.js está instalado.
  • Instale la CLI de Azure, que puede usar para ejecutar comandos en un shell para crear y configurar recursos de Azure.
  • Disponga de una cuenta de Azure con una suscripción activa. En caso de no tener una, puede crear una cuenta gratuita.
  • Instalación de Node.js LTS. Ejecute el comando node --version para comprobar que Node.js está instalado.
  • Tener un cliente FTP, como FileZilla, para transferir archivos a App Service.

Creación de una aplicación de Node.js

En este paso, creará una aplicación básica de Node.js y se asegurará de que se ejecute en el equipo.

Sugerencia

Si ya completó el tutorial deNode.js, puede ir directamente a Implementación en Azure.

  1. Cree una aplicación de Node.js mediante el generador de aplicaciones rápidas, que se instala de forma predeterminada con Node.js y npm.

    npx express-generator myExpressApp --view ejs
    

    Si es la primera vez que ha instalado el generador, npx le pide que acepte la instalación.

  2. Cambie al directorio de la aplicación e instale los paquetes npm.

    cd myExpressApp && npm install
    
  3. Actualice las dependencias a la versión más segura.

    npm audit fix --force
    
  4. Inicie el servidor de desarrollo con información de depuración.

    DEBUG=myexpressapp:* npm start
    
  5. En un explorador, vaya a http://localhost:3000. Puede ver algo así:

    Captura de pantalla de una aplicación express que se ejecuta en un explorador.

Implementar en Azure

Antes de continuar, asegúrese de haber instalado y configurado todos los requisitos previos.

Nota

Para que la aplicación de Node.js se ejecute en Azure, debe escuchar en el puerto proporcionado por la variable de entorno PORT. En la aplicación Express generada, esta variable de entorno ya se usa en el script de inicio bin/www. (Buscar process.env.PORT).

Inicio de sesión en Azure

  1. En el terminal, asegúrese de que está en el directorio myExpressApp y luego inicie Visual Studio Code con el siguiente comando:

    code .
    
  2. En Visual Studio Code, en la barra de actividades, seleccione el logotipo de Azure.

  3. Asegúrese de que ha iniciado sesión con su cuenta de Azure.

Configuración de la aplicación de App Service e implementación de código

  1. Haga clic con el botón derecho en App Services y seleccione Crear nueva aplicación web. De forma predeterminada, se usa un contenedor de Linux.

  2. Escriba un nombre único global para la aplicación web y seleccione Escriba. El nombre debe ser único en todo Azure y usar solo caracteres alfanuméricos (A-Z, a-z y 0-9) y guiones (-).

  3. En Seleccione una pila en runtime, seleccione la versión de Node.js que desee. Se recomienda el nodo 24 LTS.

  4. En Seleccione un plan de tarifa, seleccione gratis (F1) y espere a que se creen los recursos en Azure.

  5. En el elemento emergente Implementar siempre en el área de trabajo "myExpressApp" en <app-name>", seleccione Sí. Al hacerlo, se garantiza que, siempre que esté en la misma área de trabajo, Visual Studio Code se implementa en la misma aplicación de App Service cada vez.

    Mientras Visual Studio Code crea los recursos de Azure e implementa el código, muestra notificaciones de progreso.

  6. Una vez completada la implementación, seleccione Examinar sitio web en el menú emergente de notificación. El explorador debe mostrar la página predeterminada de Express.

En el terminal, asegúrate de estar en el directorio myExpressApp . Sustituye <app-name> por un nombre globalmente único, luego crea el grupo de recursos, el plan de servicios de aplicaciones y la app. Configura SCM_DO_BUILD_DURING_DEPLOYMENT para que App Service instale las dependencias y construya la app cuando despliegues el archivo fuente.

az group create --name myResourceGroup --location eastus
az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku P0v3 --is-linux
az webapp create --name <app-name> --resource-group myResourceGroup --plan myAppServicePlan --runtime "NODE:24-lts"
az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
  • Si no se reconoce el comando az, asegúrese de que tiene instalada la CLI de Azure tal y como se describe en Configuración del entorno inicial.
  • Sustituye <app-name> por un nombre único en todo Azure (los caracteres válidos son a-z, 0-9, y -).
  • El --sku P0v3 argumento selecciona el nivel de precios de pago Premium v3. Sustituye eastus por tu región preferida; lista las regiones disponibles con az account list-locations.
  • --is-linux selecciona un plan Linux. Omítalo en un plan de Windows, como se muestra en la pestaña de Windows.

Crea un archivo ZIP de los archivos de myExpressApp, no del directorio contenedor. En Linux o macOS, ejecuta zip -r ../app.zip . -x '*/node_modules/*' '*/.git/*' '*/.env*' desde myExpressApp. En Windows, ejecuta Compress-Archive -Path (Get-ChildItem -Force -Name | Where-Object { $_ -notin @('node_modules', '.git') -and $_ -notlike '.env*' }) -DestinationPath ..\app.zip en PowerShell desde myExpressApp. Luego despliega el archivo comprimido:

az webapp deploy --resource-group myResourceGroup --name <app-name> --src-path ../app.zip --type zip

Navega hasta https://<app-name>.azurewebsites.net para ver la app.

Creación de recursos de Azure

  1. Inicie sesión en Azure Portal.

  2. Para empezar a crear una aplicación Node.js, vaya a https://portal.azure.com/#create/Microsoft.WebSite.

  3. En la pestaña Datos básicos, en Detalles del proyecto, asegúrese de que la suscripción correcta está seleccionada y luego seleccione Crear nuevo para crear un grupo de recursos. Escriba myResourceGroup para el nombre.

    Recorte de pantalla de la sección Detalles del proyecto en la que se muestra dónde se selecciona la suscripción de Azure y el grupo de recursos de la aplicación web.

  4. En Detalles de la instancia, escriba un nombre único global para la aplicación web y seleccione Código. Seleccione Node 24 LTS en la pila en tiempo de ejecución, un sistema operativo y una región desde la que quiere servir la aplicación.

    Recorte de pantalla de la sección Detalles de la instancia.

  5. En Planes de precios, seleccione Crear nuevo para crear un plan de App Service. Escriba myAppServicePlan como nombre. Para cambiar al nivel Gratis, seleccione Gratis F1 en la lista Plan de precios .

    Recorte de pantalla de la sección plan de App Service.

  6. Seleccione el botón Revisar y crear de la parte inferior de la página.

    Captura de pantalla en que se muestra el botón Revisar y crear de la parte inferior de la página

  7. Después de que se ejecute la validación, seleccione el botón Crear en la parte inferior de la página.

  8. Una vez finalizada la implementación, seleccione Ir al recurso.

    Captura de pantalla que muestra el botón Ir al recurso.

Obtener credenciales de FTPS

Azure App Service admite dos tipos de credenciales para la implementación de FTP/S. Estas credenciales no son las mismas que las de su suscripción a Azure. En esta sección, obtendrá las credenciales de ámbito de aplicación que se usarán con el cliente FTP.

  1. En la página de la aplicación de App Service, seleccione Centro de implementación en Implementación en el menú de la barra lateral y, a continuación, seleccione la pestaña Credenciales de FTPS.

    Recorte de pantalla que muestra la pestaña Credenciales de implementación de FTPS.

  2. Abra el cliente FTP y vaya a la carpeta myExpressApp .

  3. En la pestaña Credenciales de FTPS , copie el punto de conexión ftpS, el nombre de usuario y la contraseña en el cliente FTP.

    Recorte de pantalla de los detalles de la conexión FTPS.

  4. Seleccione Conectar en el cliente FTP.

Implementar archivos con FTPS

  1. Copie todos los archivos y directorios en el directorio /site/wwwroot en Azure.

    Captura de pantalla del directorio raíz WWW.

  2. Vaya a la dirección URL de la aplicación para comprobar que la aplicación se está ejecutando correctamente.

Reimplementar actualizaciones

Para implementar cambios en esta aplicación, realice modificaciones en Visual Studio Code, guarde los archivos y vuelva a implementarlos en la aplicación de Azure. Por ejemplo:

  1. En el proyecto de ejemplo, abra views/index.ejs y cambie

    <p>Welcome to <%= title %></p>
    

    to

    <p>Welcome to Azure</p>
    
  1. En el explorador App Service, seleccione de nuevo el icono Implementar en aplicación web y confirme seleccionando Implementar de nuevo.

  2. Espere a que finalice la implementación y, a continuación, seleccione Examinar sitio web en el elemento emergente de notificación. Debería ver que el Welcome to Express mensaje se cambió a Welcome to Azure.

  1. Guarda tus cambios, recrea ../app.zip desde los archivos de la app como se describe en Desplegar a Azure, y vuelve a desplegar:

    az webapp deploy --resource-group myResourceGroup --name <app-name> --src-path ../app.zip --type zip
    

    Sustituye <app-name> por el nombre que usaste cuando creaste la aplicación web.

  2. Una vez terminada la implementación, actualice la página web. Debería ver que el Welcome to Express mensaje se cambió a Welcome to Azure.

  1. Guarde los cambios y vuelva a implementar la aplicación mediante el cliente FTP.

  2. Una vez terminada la implementación, actualice la página web. Debería ver que el Welcome to Express mensaje se cambió a Welcome to Azure.

Transmisión de registros

Puede transmitir la salida del registro (llamadas a console.log()) desde la aplicación de Azure directamente en la ventana de salida de Visual Studio Code.

  1. En Recursos de Visual Studio Code, haga clic con el botón derecho en el nodo de la aplicación y seleccione Iniciar registros de streaming.

    Captura de pantalla de la opción Iniciar registros de streaming.

  2. Si se le pide que reinicie la aplicación, seleccione Sí. Después de reiniciar la aplicación, se abrirá la ventana de salida de Visual Studio Code con una conexión a la transmisión de registros.

  3. Después de unos segundos, la ventana de salida muestra un mensaje donde se indica que está conectado al servicio de transmisión de registros. Puede generar más actividad de salida actualizando la página en el explorador.

    Connecting to log stream...
    2020-03-04T19:29:44  Welcome, you are now connected to log-streaming service. The default timeout is 2 hours.
    Change the timeout with the App Setting SCM_LOGSTREAM_TIMEOUT (in seconds).
    

Puede acceder a los registros de consola generados desde dentro de la aplicación y del contenedor en que esta se ejecuta. Los registros incluyen cualquier salida generada por las llamadas a console.log().

Para transmitir registros, ejecute el comando az webapp log tail:

  • Activa el registro primero: en Linux, ejecuta az webapp log config --resource-group myResourceGroup --name <app-name> --docker-container-logging filesystem; en Windows, ejecuta az webapp log config --resource-group myResourceGroup --name <app-name> --application-logging filesystem.
az webapp log tail --resource-group myResourceGroup --name <app-name>

Sustituye <app-name> por el nombre que usaste cuando creaste la aplicación web.

Actualice la aplicación en el explorador para que se generen registros de la consola, que incluyen mensajes que describen las solicitudes HTTP a la aplicación. Si no aparece la salida inmediatamente, inténtelo de nuevo en 30 segundos.

Para detener el streaming de registros en cualquier momento, seleccione Ctrl+C en el terminal.

Puede acceder a los registros de consola generados desde dentro de la aplicación y del contenedor en que esta se ejecuta. Puede transmitir la salida del registro (llamadas a console.log()) desde la aplicación Node.js directamente en Azure Portal.

  1. En la misma página de App Service para tu aplicación, usa el menú de la barra lateral para desplazarte a la sección Supervisión y selecciona Transmisión de registros.

    Captura de pantalla del flujo de registro en App de Azure Service.

  2. Después de unos segundos, la ventana de salida muestra un mensaje donde se indica que está conectado al servicio de transmisión de registros. Puede generar más actividad de salida actualizando la página en el explorador.

    Connecting...
    2021-10-26T21:04:14  Welcome, you are now connected to log-streaming service.
    Starting Log Tail -n 10 of existing logs ----
    /appsvctmp/volatile/logs/runtime/81b1b83b27ea1c3d598a1cdec28c71c4074ce66c735d0be57f15a8d07cb3178e.log
    2021-10-26T21:04:08.614384810Z: [INFO]
    2021-10-26T21:04:08.614393710Z: [INFO]  # Enter the source directory to make sure the script runs where the user expects
    2021-10-26T21:04:08.614399010Z: [INFO]  cd "/home/site/wwwroot"
    2021-10-26T21:04:08.614403210Z: [INFO]
    2021-10-26T21:04:08.614407110Z: [INFO]  export NODE_PATH=/usr/local/lib/node_modules:$NODE_PATH
    2021-10-26T21:04:08.614411210Z: [INFO]  if [ -z "$PORT" ]; then
    2021-10-26T21:04:08.614415310Z: [INFO]          export PORT=8080
    2021-10-26T21:04:08.614419610Z: [INFO]  fi
    2021-10-26T21:04:08.614423411Z: [INFO]
    2021-10-26T21:04:08.614427211Z: [INFO]  node /opt/startup/default-static-site.js
    Ending Log Tail of existing logs ---
    

Limpieza de recursos

En los pasos anteriores, creó recursos de Azure en un grupo de recursos. En los pasos de este inicio rápido se colocan todos los recursos de este grupo de recursos. Para quitarlos, solo tiene que eliminar el grupo de recursos.

  1. En la extensión de Azure de Visual Studio Code, en la lista Agrupar por , seleccione Agrupar por grupo de recursos.

  2. En la lista Recursos , expanda la suscripción, haga clic con el botón derecho en el grupo de recursos que creó anteriormente y seleccione Eliminar grupo de recursos.

    Captura de pantalla de la navegación de Visual Studio Code para eliminar un recurso que contiene recursos de App Service.

  3. Cuando se le solicite, confirme la eliminación; para ello, escriba el nombre del grupo de recursos que va a eliminar. Después de confirmarlo, se elimina el grupo de recursos y verá una notificación cuando haya terminado.

En los pasos anteriores de la CLI, creaste recursos de Azure en myResourceGroup.

Si prevé que no necesitará estos recursos en el futuro, ejecute el siguiente comando para eliminar el grupo de recursos:

az group delete --name myResourceGroup --no-wait

El argumento --no-wait permite la devolución del comando antes de que se complete la operación.

Puede eliminar el grupo de recursos, App Service y todos los recursos relacionados cuando ya no sean necesarios.

  1. En la página Información general de App Service, seleccione el grupo de recursos que creó en el paso Creación de recursos de Azure.

    Captura de pantalla del grupo de recursos en la página de información general de App Service.

  2. En la página del grupo de recursos, seleccione Eliminar grupo de recursos. Confirme el nombre del grupo de recursos para terminar de eliminar los recursos.

    Captura de pantalla de Eliminación del grupo de recursos.

Ha completado correctamente este inicio rápido.

Compruebe las demás extensiones de Azure.

O bien, para obtenerlos, instale el paquete de extensiones Node Pack para Azure.