Azure: varios sitios web basados ​​dinámicamente en el subdominio

Estamos usando Azure para alojar nuestro website. Hemos configurado Git con un gancho personalizado para cada confirmación y twig, por lo que podemos ver una instantánea de una confirmación en particular (o la última versión de una twig determinada):

  • http://commit-1234.commits.example.com/
  • http://some-feature.branches.example.com/

En este momento estamos administrando nuestro entorno de ensayo a través de una máquina virtual Apache porque Vhosts hace que sea más fácil: simplemente volcamos el código de una determinada confirmación (o bifurcación) en una carpeta apropiada. Para lo anterior:

  • / htdocs / commits / commit-1234 /
  • / htdocs / branches / some-feature /

¿Se puede hacer esto en Azure Websites (ahora Web Apps)? ¿Cómo crearíamos alguna regla dinámica para que IIS asigna, por ejemplo, "commit-1234" a la carpeta / webroot / commit-1234 / y la use como la raíz de las routes relativas (por ejemplo, las incluidas en el server)?

Puedo pensar en dos opciones sólidas para probar en vivo las marcas de implementación: Ranuras de implementación y aplicaciones virtuales

Ranuras de implementación

Puede crear una ranura de implementación para su sitio que permita algunas funciones geniales como las testings AB (una pequeña cantidad de tráfico iría a esa ranura). Como pagas por instancia de App Service y no por aplicación web, no te cobran nada adicional, y luego tienes entornos limpios (como si tal vez si uno de los cambios realiza una actualización de la database, puedes usar un esquema diferente sin ningún hacks tontos). Entonces, tendrías un nombre de url como {{sitename}}-{{commit}}.azurewebsites.net . Puede configurar cada ranura manualmente o ejecutar un script. No sería muy difícil conseguir un WebJob ejecutándose para escuchar sus GitHub Hooks y luego aprovisionar la ranura de puesta a escena . Le conviene leer en Kudu (motor de implementación de código abierto de la Aplicación Web) y cómo funcionan los Deployment Hooks .

Aplicaciones virtuales

Puede implementar aplicaciones virtuales y asignarlas con IIS, de forma similar a cómo lo hace con Apache. Puede consultar el blog de Tom donde explica los detalles de la configuration de la aplicación virtual. Creo que esto termina siendo más difícil y aún requiere pasos manuales. Solo lo menciono porque el resultado es bastante cercano a lo que usted indicó. Puede asignar cada directory virtual a un URI específico (por ejemplo, /{{commit}}/ ).

FYI – Soy un PM en el equipo de Azure Web Apps. Creo que el primer ejemplo es bastante interesante. Me gustaría ayudar y convertir eso en una publicación de blog.

Cuando configura la integración de Git para cada website / punto final de la aplicación Azure, puede elegir la twig.

De la documentation: "En la hoja de Despliegue continuo, elija la organización, proyecto y twig de la que desea implementar. Cuando termine, click Aceptar".

Fuente: https://azure.microsoft.com/en-us/documentation/articles/web-sites-publish-source-control/

¡Espero que ayude! 🙂

  • Shahed