Servicio de Azure que proporciona una plataforma de proceso sin servidor controlada por eventos.
Thank you for reaching out to Microsoft Q&A.
Este problema se produce debido a un fallo en la resolución del punto de entrada (entry point) de Node.js en Azure Static Web Apps (SWA) con Azure Functions gestionadas, especialmente cuando se utiliza Node.js 20 o versiones superiores. Aunque el artefacto generado por el despliegue contiene correctamente los archivos index.js y function.json dentro de cada carpeta de función, el worker de Azure Functions intenta primero cargar un punto de entrada a nivel de aplicación, el cual se obtiene del campo "main" definido en el archivo api/package.json. A partir de Node.js 20, los errores al cargar este entry point son bloqueantes por diseño. Si el archivo definido en "main" no existe en la ruta esperada tras el build de Oryx, el worker no inicia, ninguna función se registra y todas las llamadas a /api/* devuelven HTTP 500, aunque los archivos de las funciones estén presentes. Adicionalmente, Node.js 22 no está soportado oficialmente para Azure Static Web Apps con Functions gestionadas, lo que puede provocar fallos en tiempo de ejecución incluso si el build finaliza correctamente.
Refer below points to resolve this issue or this is the workaround
1. Eliminar o corregir el campo "main" en api/package.json Si no necesitas un punto de entrada a nivel de aplicación, elimina completamente la propiedad "main" del package.json. Esto evita que el worker intente cargar un archivo inexistente y permite que las funciones se carguen correctamente.
{
"name": "api",
"version": "1.0.0",
"private": true,
"dependencies": {
"@azure/functions": "^4.x"
},
"engines": {
"node": "20.x"
}
}
Si necesitas usar "main", asegúrate de que apunte exactamente a un archivo que exista después del build (por ejemplo dist/index.js).
- Forzar una versión de Node.js soportada (Node.js 20)
Azure Static Web Apps con Functions gestionadas no soporta Node.js 22. Debes fijar explícitamente la versión de runtime creando o actualizando el archivo staticwebapp.config.json en la raíz del repositorio:
{
"platform": {
"apiRuntime": "node:20"
}
}
- Verificar api_location y la estructura del proyecto en el workflow
Asegúrate de que api_location apunte a la raíz real de la aplicación de Functions y que dicha carpeta contenga host.json, package.json y las carpetas de las funciones. Evita estructuras anidadas incorrectas que no coincidan con la salida real del build.
- Revisar la configuración de function.json
Si se define la propiedad "scriptFile", esta debe coincidir con la ruta real del archivo desplegado. Para funciones JavaScript simples, puedes omitir "scriptFile" o usar "scriptFile": "index.js" cuando el archivo se encuentre en la misma carpeta.