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

Importante

El contenido de este artículo cambiará 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 de escenarios comunes en aplicaciones de funciones de Node.js.

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

Otro recurso útil es la pestaña Registros de Azure Portal de la instancia de Application Insights para que pueda ejecutar consultas KQL personalizadas. En la consulta de ejemplo siguiente, se muestra cómo ver 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 dichos recursos no han resuelto su problema, las siguientes secciones ofrecen consejos para los problemas de aplicación específicos:

Ninguna función encontrada

Si ve alguno de los siguientes errores en sus registros:

No se encontraron desencadenadores HTTP.

No se han encontrado funciones de trabajo. Pruebe a hacer públicos los métodos y clases de trabajo. Si usa extensiones de enlace (por ejemplo, Azure Storage, ServiceBus, temporizadores, etc.), asegúrese de que ha llamado al método de registro para las extensiones en el código de inicio (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 posterior.
  • Al ejecutar en Azure:
    • Asegúrese de que usa Azure Functions Runtime versión 4.25 o posterior.

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

    • Establezca la configuración de la aplicación FUNCTIONS_NODE_BLOCK_ON_ENTRY_POINT_ERROR en true. Esta configuración se recomienda para todas las aplicaciones de modelo v4, ya que garantiza que todos los errores de punto de entrada sean 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 archivo host.json en la raíz y una carpeta para cada función que contiene un archivo function.json.

La solicitud Undici 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: Error Excepción: undici_1.Request no es un constructor

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

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

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

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

Compruebe el archivo package.json para obtener una referencia a applicationinsights y asegúrese de que la versión es ^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 siguientes maneras:

  • Busque los problemas conocidos en el repositorio de Node.js de Azure Functions. Si no ve el problema mencionado, cree una incidencia y cuéntenos qué ha ocurrido.
  • Si no puede diagnosticar el problema mediante esta guía, los ingenieros de soporte técnico de Microsoft están disponibles para ayudar a diagnosticar problemas con la aplicación. Microsoft ofrece varios planes de soporte técnico. Cree una incidencia 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 funciones en Azure Portal.

Pasos siguientes