Hace algún tiempo hice un vídeo en el que explicaba como servir páginas estáticas con Azure Blob Storage, una forma rápida, sencilla y barata para servir este tipo de páginas. Ahora, Microsoft ofrece el servicio de Azure Static Web Apps (aún en preview) para la gestión de este tipo webs. Lo he estado probando, y estas son mis primerísimas impresiones.
Lo primero, recordar que todo esto esta en preview, por lo que todo lo que hay en el momento de escribir esta entrada puede cambiar rápidamente. Otro tema a tener en cuenta al estar en preview, es que no se sabe como cobrará esto Microsoft en el futuro, por lo que no podemos calcular posibles coste. Intuyo que será un servicio barato, pero tendremos que esperar para ver el coste, de momento es gratuito.
Nada más ponerme, una de las cosas que me ha sorprendido al ir a usar el servicio es que el código tiene que estar en un repositorio de GitHub. De momento, Azure Repos no esta soportado y no parece que en el corto plazo lo vaya a estar. En la propia descripción del servicio dicen:
Azure Static Web Apps is a service that automatically builds and deploys full stack web apps to Azure from a GitHub repository.
Y cuando les he preguntado por ello en Twitter, esta ha sido la respuesta:
Así que de momento (e incomprensiblemente) el repositorio donde tengas la web ha de estar en GitHub.
Una vez tienes tu repositorio creado, al crear el servicio en Azure, lo vinculas directamente a una rama y a partir de ahí solo puedes desplegar a través de de una Git Action, que por cierto esta muy bien integrado. Esto me ha gustado, te obliga a usar integración continua para desplegar.
Al crear el servicio en Azure has de indicar las rutas iniciales de configuración, lo que facilita que luego todo funcione «mágicamente».
Por ejemplo, para una web React, el artifact esta en build y si hemos creado una API, indicaremos su ruta.
Si creamos la API usando Azure Functions en modo Javascript y HttpTrigger y lo configuramos en el servicio como he mencionado anteriormente, Static web app enrutará automáticamente.
Una cosa que no me ha gustado mucho es que no hay control sobre la API una vez desplegada, al contrario que Azure Functions, ya que estas no se ven en la sección de funciones. Tan solo se muestra un listado de funciones en el servicio, pero nada más. Para los logs tendrás que ir a Insights.
También podremos configurar un dominio propio muy fácilmente:
Resumiendo, si tienes una web muy sencilla, de momento veo mejor opción usar blob storage, pero si vas a montar un proyecto SPA con alguno de los frameworks del momento puede ser una opción a tener en cuenta cuando salga de preview. A ver como evoluciona la cosa, y sobre todo, a ver si incluyen a Azure Repos en la ecuación!
Enlaces relacionados:
https://docs.microsoft.com/es-es/azure/static-web-apps/overview
Probablemente esten utilizando la tecnologia de github pages y por eso te obligan a usar github. Ya puede ser super barato por que sino no se va a usar. Yo monte para una spa en angular un cdn+ blobstorage y su coste al mes creo que no llega a los 2-3€