Azure Functions | Aumentar el Timeout

Cuando desarrollamos Azure Functions, debemos asumir que estas no son infinitas salvo que usamos el Plan Premium, que las incluyamos dentro de nuestro App Service, o que las desarrollemos dentro de una orquestación de Azure Durable Functions. Por lo tanto, bajo esta premisa, existe un Timeout que define cuánto tiempo pueden permanecer en ejecución que, por defecto es de 5 minutos en el caso de un plan de consumo y de 30 minutos en el resto de casos.

Cómo cambiar el tiempo límite de ejecución

Para cambiar el tiempo de ejecución debemos definir en el fichero host.json la configuración que determinará este comportamiento.

Esta propiedad es functionTimeout y hay que especificarle el límite de tiempo en formato «hh:mm:ss» tal y como muestro a continuación.

{
  "version": "2.0",
  "functionTimeout": "00:10:00"
}

Como se puede observar, en mi fichero Json, he aumentado el tiempo de ejecución de mi Azure Function en versión 2.x, de los 5 minutos por defecto a los 10 que tenemos como límite en la versión de plan de consumo.

Tengo mi Azure Function publicada, ¿puede cambiar el Timeout?

La respuesta es que sí, desde el portal de Azure podemos editar este valor, pero probablemente antes de hacerlo, tengamos que habilitar la edición.

  • Ir a la configuración de la Function
  • Cambiar el valor de FUNCTION_APP_MODE a «readwrite»
  • Ir a la configuración
  • Editar los parámetros de host.json

Tiempos de ejecución según el plan

Según el plan que usemos, dispondremos de unos valores por defecto y unos límites diferentes que debemos conocer para poder decidir qué opción tomar pero todo tiene sus Pros y sus Contras

Como ya indiqué al principio del artículo, tanto en App Service como en el plan Premium, podemos disponer de una ejecución infinita, partiendo desde un valor por defecto de 30 minutos pero, no es oro todo lo que reluce.

Pros y Contras del Plan Premium

Como Pros, entre otras cosas, podemos nombrar que el rendimiento es espectacular pero, aquí viene el contra, el precio puede ser bastante elevado.

Pros y Contras de incluir las function en nuestro App Service

Como Pros, nombraré que el precio será el que tengamos en nuestro App Service y que se regirá por sus límites pero, como contra, los App Service generan costes aunque no se esté ejecutando la function, además de que si en ese App Service tenemos un website u otras functions, compartirán los recursos y el rendimiento puede llegar a ser malo.

Más información sobre el fichero host.json

Puedes encontrar más información sobre todas las propiedades que se pueden especificar en el fichero host.json accediendo al siguiente enlace de la documentación https://docs.microsoft.com/es-es/azure/azure-functions/functions-host-json

Espero que os sirva de ayuda

Enjoy Coding!