Tiempo de espera de la función

Si una función se ejecuta por demasiado tiempo, el sistema toma medidas para finalizarla o limitarla. El tiempo de espera predeterminado es de 60 segundos, pero puedes extenderlo o reducirlo cuando implementes la función:

  • En Cloud Functions (1st gen), la duración máxima del tiempo de espera es de nueve minutos (540 segundos).
  • En Cloud Functions (2nd gen), la duración máxima del tiempo de espera es de 60 minutos (3,600 segundos) para las funciones de HTTP y 9 minutos (540 segundos) para las funciones controladas por eventos.

Cuando la ejecución de la función alcanza su tiempo de espera, la respuesta del sistema depende de si es una función de 1ª gen. o 2ª gen.

  • 1ª gen.: Un mensaje de respuesta con un estado de error de HTTP (por lo general, el 408) se muestra de inmediato al emisor. Se detiene la ejecución de la función.
  • 2ª gen.: Un mensaje de respuesta con un estado de error de HTTP 504 se muestra de inmediato al emisor. La instancia de la función puede verse limitada, pero continúa funcionando hasta que se cierra por sí sola. Cualquier mensaje de respuesta que la función genere se descarta y no se muestra al emisor.

Este comportamiento de las funciones de 2ª gen. puede causar efectos secundarios inesperados. Un síntoma común es que el trabajo y los registros de una solicitud empiezan a “filtrarse” a una solicitud posterior. Para evitar esto, evita los tiempos de espera en tus funciones con las siguientes técnicas:

  1. Establece un tiempo de espera mayor que el tiempo de ejecución esperado de la función.
  2. Realiza un seguimiento de la cantidad de tiempo restante durante la ejecución. Luego, realiza una limpieza y regreso antes.

Establece una duración para el tiempo de espera

Puedes configurar el tiempo de espera de una función durante la implementación mediante la CLI de Google Cloud o la consola de Google Cloud.

gcloud

Si realizas la implementación con la CLI de gcloud, usa la marca --timeout:

gcloud functions deploy YOUR_FUNCTION_NAME --timeout=TIMEOUT_DURATION ...

Para editar un tiempo de espera existente con Google Cloud CLI, vuelve a implementar la función con un nuevo valor de tiempo de espera.

Console

Para configurar la duración del tiempo de espera durante la creación de la función en la consola de Google Cloud, sigue estos pasos:

  1. Ve a la página Descripción general de Cloud Functions en la consola de Google Cloud.
  2. Haga clic en Crear función.
  3. Completa los campos obligatorios de la función.
  4. Expande la sección Entorno de ejecución, compilación... al final de la página y haz clic en la pestaña Entorno de ejecución.
  5. En el campo Tiempo de espera, ingresa la cantidad de segundos.

    Para editar un tiempo de espera de espera existente en la consola de Google Cloud, en la página de descripción general de las funciones, haz clic en el nombre de la función para ir a su página de detalles. En la página de detalles, haz clic en Editar, expande la sección Entorno de ejecución, compilación… y haz clic en la pestaña Entorno de ejecución, en la que puedes editar directamente el valor en el campo Tiempo de espera.