De forma predeterminada, cada tarea se ejecuta durante un máximo de 10 minutos. Puedes cambiar este valor por un periodo más corto o más largo, de hasta 168 horas (7 días). La compatibilidad con tiempos de espera superiores a 24 horas está disponible en la versión preliminar.
El tiempo de espera de las tareas se define tal como se describe en esta página. No hay un tiempo de espera explícito para la ejecución de un trabajo: cuando se completan todas las tareas, se completa la ejecución del trabajo.
Las unidades especifican una duración. Puedes especificar la duración del tiempo de espera como un valor entero en segundos, minutos u horas. Por ejemplo, para definir la duración del tiempo de espera en 10 minutos y 5 segundos, especifica el valor 605
segundos.
Si tu trabajo tiene habilitados los reintentos, el ajuste de tiempo de espera se aplica a cada intento de una tarea. Si el intento de tarea no se completa en ese plazo, se detendrá. Cuanto más tiempo se ejecute un trabajo, más probabilidades habrá de que se produzcan problemas que provoquen un fallo, como fallos de dependencias posteriores, errores de falta de memoria o problemas de infraestructura. Te recomendamos que habilites los reintentos en todas las tareas, pero sobre todo en las que se ejecutan durante mucho tiempo.
Eventos de mantenimiento
Los trabajos se someten periódicamente a eventos de mantenimiento. Durante un evento de mantenimiento, las tareas en curso se migran de la máquina actual a otra. El procesamiento se pausará brevemente mientras se migra la tarea.
El proceso de migración conserva el estado de la tarea, con una excepción importante: las conexiones de red de VPC salientes se interrumpen durante los eventos de mantenimiento. Te recomendamos que uses bibliotecas de cliente que puedan gestionar los restablecimientos de conexión ocasionales.
Cloud Run imprime un mensaje de registro cada vez que se inicia y finaliza la migración de una tarea.
Además, si quieres monitorizar o gestionar los eventos de mantenimiento de una forma específica, puedes detectar la señal SIGTSTP
, que se envía 10 segundos antes de que se migre una tarea. Después de la migración, la tarea recibe una señal SIGCONT
inmediatamente después de reiniciarse.
El siguiente ejemplo de Go es una función que detecta estas señales e imprime una entrada de registro:
func testSignals() { sigs := make(chan os.Signal, 1) signal.Notify(sigs, syscall.SIGTSTP, syscall.SIGCONT) go func() { for { sig := <-sigs log.Printf("Got Signal: %v", sig) } }() }
Roles obligatorios
Para obtener los permisos que necesitas para configurar los trabajos de Cloud Run, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:
-
Desarrollador de Cloud Run (
roles/run.developer
) en la tarea de Cloud Run -
Usuario de cuenta de servicio (
roles/iam.serviceAccountUser
) en la identidad de servicio
Para ver una lista de los roles y permisos de gestión de identidades y accesos asociados a Cloud Run, consulta los artículos sobre roles de gestión de identidades y accesos de Cloud Run y permisos de gestión de identidades y accesos de Cloud Run. Si tu trabajo de Cloud Run interactúa con APIs deGoogle Cloud , como las bibliotecas de cliente de Cloud, consulta la guía de configuración de la identidad de servicio. Para obtener más información sobre cómo conceder roles, consulta los artículos sobre permisos de implementación y gestión del acceso.
Definir el tiempo de espera de las tareas
Para especificar el tiempo de espera de las tareas de un trabajo de Cloud Run, sigue estos pasos:
Consola
En la Google Cloud consola, ve a la página de trabajos de Cloud Run:
Seleccione Trabajos en el menú y haga clic en Implementar contenedor para rellenar la página de configuración inicial del trabajo. Si vas a configurar un trabajo que ya existe, selecciona el trabajo y haz clic en Editar.
Haz clic en Contenedores, volúmenes, conexiones y seguridad para desplegar la página de propiedades del trabajo.
Haz clic en la pestaña General.
- En el campo Tiempo de espera de la tarea, especifica la duración máxima de las tareas del trabajo actual y selecciona una Unidad de tiempo. Solo puedes especificar la duración del tiempo de espera como un valor entero en segundos, minutos u horas. Por ejemplo, para definir una duración de 10 minutos y 5 segundos, en el campo Tiempo de espera de la tarea, especifica
605
y selecciona segundo en Unidad de tiempo.
- En el campo Tiempo de espera de la tarea, especifica la duración máxima de las tareas del trabajo actual y selecciona una Unidad de tiempo. Solo puedes especificar la duración del tiempo de espera como un valor entero en segundos, minutos u horas. Por ejemplo, para definir una duración de 10 minutos y 5 segundos, en el campo Tiempo de espera de la tarea, especifica
Haz clic en Crear o en Actualizar.
gcloud
En el caso de una tarea que estés creando:
gcloud run jobs create JOB_NAME --image IMAGE_URL --task-timeout TIMEOUT
Sustituir
- JOB_NAME con el nombre del trabajo.
- IMAGE_URL: una referencia a la imagen del contenedor. Por ejemplo,
us-docker.pkg.dev/cloudrun/container/job:latest
. - TIMEOUT con la duración máxima de las tareas, especificando la cantidad de tiempo y las unidades. Por ejemplo,
10m5s
son diez minutos y cinco segundos.
Si quieres actualizar un trabajo:
gcloud run jobs update JOB_NAME --task-timeout TIMEOUT
YAML
Si vas a crear un trabajo, sáltate este paso. Si vas a actualizar una tarea, descarga su configuración YAML:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Actualice el atributo
timeoutSeconds:
:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB spec: template: spec: template: spec: containers: - image: IMAGE timeoutSeconds: TIMEOUT
Sustituye:
- JOB_NAME con el nombre del trabajo.
- IMAGE_URL: una referencia a la imagen del contenedor. Por ejemplo,
us-docker.pkg.dev/cloudrun/container/job:latest
. - TIMEOUT con la duración máxima de las tareas, especificando el tiempo y las unidades. Solo puedes especificar el tiempo como un valor entero en segundos, minutos u horas. Por ejemplo, para definir una duración de 10 minutos y 5 segundos, especifica
605
.
También puedes especificar más detalles de configuración, como variables de entorno o límites de memoria.
Actualiza la configuración de la tarea:
gcloud run jobs replace job.yaml
Terraform
Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.
Añade lo siguiente a un recursogoogle_cloud_run_v2_job
en tu configuración de Terraform:Ver los ajustes de tiempo de espera de las tareas
Para ver la configuración actual del tiempo de espera de las tareas de tu trabajo de Cloud Run, sigue estos pasos:
Consola
En la Google Cloud consola, ve a la página de trabajos de Cloud Run:
Haz clic en el trabajo que te interese para abrir la página Detalles del trabajo.
Haz clic en Ver y editar configuración del trabajo.
Busca el ajuste de tiempo de espera de la tarea en los detalles de la configuración.
gcloud
Usa el siguiente comando:
gcloud run jobs describe JOB_NAME
Busca el ajuste de tiempo de espera de la tarea en la configuración devuelta.