Solución de problemas de aplicaciones Node.js en Azure Functions

Importante

El contenido de este artículo cambia en función de la elección del modelo de programación de Node.js en el selector de la parte superior de la página. El modelo v4 está disponible de forma general y está diseñado para que los desarrolladores de JavaScript y TypeScript tengan una experiencia más flexible e intuitiva. Obtenga más información sobre las diferencias entre v3 y v4 en la guía de migración.

En este artículo se proporciona una guía para solucionar problemas en escenarios comunes de las aplicaciones de funciones de Node.js.

La pestaña Diagnosticar y resolver problemas del portal de Azure es un recurso útil para supervisar y diagnosticar posibles problemas relacionados con la aplicación. También proporciona soluciones potenciales a sus problemas en función del diagnóstico. Para obtener más información, consulte Diagnósticos de aplicaciones de Azure Functions.

Otro recurso útil es la pestaña Registros del portal de Azure de la instancia de Application Insights para que pueda ejecutar consultas KQL personalizadas. En la consulta de ejemplo siguiente se muestra cómo ver los errores y advertencias de la aplicación en el último día:

let myAppName = "<your app name>";
let startTime = ago(1d);
let endTime = now();
union traces,requests,exceptions
| where cloud_RoleName =~ myAppName
| where timestamp between (startTime .. endTime)
| where severityLevel > 2

Si esos recursos no resolvieron el problema, en las secciones siguientes se proporcionan consejos para problemas específicos de la aplicación:

No se encontraron funciones

Si ve alguno de los errores siguientes en los registros:

No se encontraron desencadenadores HTTP.

No se encontraron funciones de trabajo. Pruebe a hacer públicas las clases y métodos de trabajo. Si usa extensiones de enlaces (por ejemplo, Azure Storage, ServiceBus, Timers, etc.), asegúrese de haber llamado al método de registro de la extensión o extensiones en el código de inicialización (por ejemplo, builder.AddAzureStorage(), builder.AddServiceBus(), builder.AddTimers(), etc.).

Pruebe las siguientes correcciones:

  • Al ejecutar localmente, asegúrese de que usa Azure Functions Core Tools v4.0.5382 o superior.
  • Cuando se ejecuta en Azure:
    • Asegúrese de usar la versión del entorno de ejecución de Azure Functions 4.25 o superior.

    • Asegúrese de que usa Node.js v18 o superior.

    • Establezca la configuración FUNCTIONS_NODE_BLOCK_ON_ENTRY_POINT_ERROR de la aplicación en true. Esta configuración se recomienda para todas las aplicaciones de modelo v4 y garantiza que todos los errores de punto de entrada estén visibles en los registros de Application Insights. Para más información, consulte Referencia de configuración de aplicación para Azure Functions.

    • Compruebe los registros de la aplicación de funciones para ver si hay errores de punto de entrada. En la consulta de ejemplo siguiente se muestra cómo ver los errores de punto de entrada de la aplicación en el último día:

      let myAppName = "<your app name>";
      let startTime = ago(1d);
      let endTime = now();
      union traces,requests,exceptions
      | where cloud_RoleName =~ myAppName
      | where timestamp between (startTime .. endTime)
      | where severityLevel > 2
      | where message has "entry point"
      
  • Asegúrese de que la aplicación tiene la estructura de carpetas necesaria con un host.json en la raíz y una carpeta para cada función que contiene un archivo function.json .

Undici request no es un constructor

Si recibe el siguiente error en los registros de la aplicación de funciones:

System.Private.CoreLib: excepción durante la ejecución de la función: Functions.httpTrigger1. System.Private.CoreLib: Resultado: Excepción de error: undici_1.Request no es un constructor

Asegúrese de que usa Node.js versión 22.x o posterior.

No se pudo detectar el tiempo de ejecución de Azure Functions

Si aparece el siguiente error en los registros de la aplicación de funciones:

ADVERTENCIA: No se pudo detectar el tiempo de ejecución de Azure Functions. Cambio del paquete "@azure/functions" al modo de prueba: no se admiten todas las características.

Compruebe el package.json archivo para obtener una referencia a applicationinsights y asegúrese de que la versión sea ^2.7.1 o superior. Después de actualizar la versión, ejecute npm install

Obtener ayuda de Microsoft

Puede obtener más ayuda de Microsoft de una de las maneras siguientes:

  • Busque los problemas conocidos en el repositorio de Azure Functions Node.js. Si no ve el problema mencionado, cree un nuevo problema e indíquenos lo que ha ocurrido.
  • Si no puede diagnosticar el problema mediante esta guía, Microsoft ingenieros de soporte técnico están disponibles para ayudar a diagnosticar problemas con la aplicación. Microsoft ofrece varios planes de soporte técnico. Cree un ticket de soporte técnico en la sección Soporte técnico y solución de problemas de la página de la aplicación de función en el portal de Azure.

Pasos siguientes