Tengo una aplicación de funciones de Azure alojada en un plan de servicio de Elastic Premium. Se activa a partir de los mensajes de Service Bus entrantes.
Necesito actualizar la versión de Node.js de 12 a 14 (configurada en Configuración general) a través de Terraform. Sin embargo, tengo miedo de generar tiempo de inactividad y perder mensajes si la actualización ocurre mientras se procesan los mensajes.
Para los mensajes nuevos, debería estar bien, ya que no se consumirán ni se leerán más adelante. Pero, ¿qué pasa si las instancias están ocupadas ejecutándose? ¿Azure espera a que se completen antes de realizar la actualización (sin crear nuevas) o los mata aunque no hayan terminado?
¿Puede por favor tranquilizarme o guiarme a través de este proceso? También estoy buscando documentación que especifique el comportamiento en tal escenario.
Muchísimas gracias
Cualquier actualización de la configuración de la aplicación, que es la versión del nodo js en este caso, solicitará un reinicio de la función.
Mientras que en el caso de la ejecución en curso de los mensajes, a menos que la ejecución se complete por completo, la función no eliminará los mensajes y seguirán estando en el bus de servicio, y solo se eliminarán una vez que se complete la función de ejecución.
Este es un comportamiento de peeklock del bus de servicio donde, en caso de falla, el mensaje no se elimina y también es un comportamiento predeterminado.
consulte la siguiente documentación para obtener más explicaciones sobre el comportamiento de peeklock