Post

Error inexplicable en el despliegue de una Azure Function

Dos preciosas horas de mi vida desaparecieron gracias a éste críptico mensaje de error que me apareció cuando muy contento yo ya estaba intentado desplegar mi Azure Function en Azure luego de que ya funcionaba perfectamente en mi entorno usando lo último del modelo Isolated en dotnet 7 (aclaro que ésto no tuvo que ver con el error) junto con el excelente servicio para manejo de configuración de aplicaciones Azure App Configuration e incluso KeyVault! (Puedes consultar más detalles de cómo lograr esto en éste post que escribí al respecto).

Como se nota, no es que el mensaje de error proporcione mucha información. Excepto que se puede ir a ver un archivo de log. Que si lo abrimos nos muestra majestuosamente:

Archivo de log inútil

Lo mismo: nada. Ni una pista de lo que sucede.

Reinicié Visual Studio, la máquina, intenté desde otro PC, luego desde una VM en Azure, y siempre tuve el mismo error, aún cuando ya había podido desplegar esta función antes. Además el hecho de que la Azure Function corriera impecablemente en cualquiera de las máquinas que probé hacía que me confundiera más.

Solo fue cuando la divina providencia de pura casualidad hizo que Visual Studio me mostrara el Solution Explorer pero en modo carpetas (Folder View), que noté algo muy raro:

Ventajas de la vista de carpeta o Folder View

Esto me hizo notar que el proyecto de alguna manera se me había duplicado (tal vez un drag-and-dropaccidental). Y, aunque el proyecto interno era el que tenía la última versión y allí funcionaba correctamente de manera local, al tratar de desplegarlo, el wizard de Visual Studio se confunde porque se encuentra que el proyecto que intenta desplegar está contenido en otro proyecto. Sin embargo, el hecho de que la Azure Function compilará y funcionara bien hacía muy difícil pensar en esto que de casualidad noté.

Cuando noté esto, aún no había empezado a intentar la solución de desplegar por FTP por ejemplo. Aunque, en este caso creo que no habría habido problema porque en el despliegue manual yo solo hubiese subido el contenido de la carpeta binque es la que se requiere para correr la función en Azure. Además viendo la estructura de carpetas en el cliente FTP, muy seguramente habría notado esta irregularidad.

Pues bien, procedí a eliminar los archivos externos y luego moví los internos un nivel más arriba y finalmente eliminé la carpeta que quedó vacía y de esta manera me quedó una estructura de este tipo:

Estructura de archivos corregida

Después de esto ya el despliegue funcionó perfectamente!

Moraleja:

Si tu aplicación funciona correctamente y estás seguro que todo se ha configurado correctamente para el despliegue y sin embargo sigues teniendo problemas de despliegue, es muy probable que de alguna manera tengas una estructura de archivos errada como en el caso mostrado, que necesite ser corregida.

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.