De forma predeterminada, cada tarea se ejecuta durante 10 minutos como máximo: puedes cambiar esto a un tiempo más corto o a un máximo de 168 horas (7 días). La compatibilidad con tiempos de espera superiores a 24 horas está disponible en la versión preliminar.
Establece el tiempo de espera de las tareas como se describe en esta página. No hay un tiempo de espera explícito en la ejecución de un trabajo: cuando se completan todas las tareas, la ejecución del trabajo finaliza.
Las unidades especifican una duración. Puedes especificar la duración del tiempo de espera como un número entero en segundos, minutos u horas. Por ejemplo, para establecer la duración del tiempo de espera como
10 minutos y 5 segundos, especifica el valor como 605
segundos.
Si tu trabajo tiene habilitados los reintentos, la configuración del tiempo de espera se aplica a cada intento de una tarea. Si el intento de tarea no se completa en este tiempo, se detendrá. Cuanto más tiempo se ejecute una tarea, es más probable que se produzcan problemas que la hagan fallar, como fallas de dependencia descendente, errores de memoria insuficiente o problemas de infraestructura. Recomendamos habilitar las reintentos para todos los trabajos, pero especialmente para los que tienen tareas de larga duración.
Observa y controla eventos de mantenimiento
Es posible que los trabajos se sometan a eventos de mantenimiento de forma periódica. Durante un evento de mantenimiento, las tareas en curso se migran de la máquina actual a una diferente. Este proceso de migración conserva todo el estado de la tarea. Sin embargo, hay una breve pausa en el procesamiento mientras se migra la tarea.
Los eventos de mantenimiento son transparentes. No es necesario que realices cambios en tu contenedor para controlar los eventos de mantenimiento. Ten en cuenta que cada vez que se inicia y finaliza una tarea, Cloud Run imprime un mensaje de registro.
Sin embargo, si deseas supervisar o controlar los eventos de mantenimiento de una manera específica, puedes detectar el indicador 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
de inmediato después de reiniciar la tarea.
La siguiente muestra de Go es una función que detecta estas señales y, luego, 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, pídele a tu administrador que te otorgue los siguientes roles de IAM:
-
Desarrollador de Cloud Run (
roles/run.developer
) en el trabajo de Cloud Run -
Usuario de la cuenta de servicio (
roles/iam.serviceAccountUser
) en la identidad del servicio
Para obtener una lista de los roles y los permisos de IAM asociados con Cloud Run, consulta Roles de IAM de Cloud Run y Permisos de IAM de Cloud Run. Si tu trabajo de Cloud Run interactúa con las APIs de Google Cloud, como las bibliotecas cliente de Cloud, consulta la guía de configuración de identidades del servicio. Para obtener más información acerca de cómo otorgar roles, consulta Permisos de implementación y Administra el acceso.
Establece el tiempo de espera de las tareas
A fin de especificar el tiempo de espera de la tarea para un trabajo de Cloud Run, sigue estos pasos:
Console
En la consola de Google Cloud, ve a la página de trabajos de Cloud Run:
Haz clic en Implementar contenedor y selecciona Trabajo para completar la página de configuración de trabajo inicial. Si quieres configurar un trabajo existente, selecciona el trabajo y, luego, haz clic en Editar.
Haz clic en Contenedor, variables y secretos, conexiones y seguridad para expandir 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 de trabajo en
el trabajo actual y selecciona una Unidad de tiempo. Solo puedes especificar la duración del tiempo de espera
como un valor de número entero en segundos, minutos u horas. Por ejemplo, para establecer una
duración de 10 minutos y 5 segundos, en el campo Tiempo de espera de la tarea, especifica
605
y selecciona la Unidad de tiempo como segundos.
- En el campo Tiempo de espera de la tarea, especifica la duración máxima de las tareas de trabajo en
el trabajo actual y selecciona una Unidad de tiempo. Solo puedes especificar la duración del tiempo de espera
como un valor de número entero en segundos, minutos u horas. Por ejemplo, para establecer una
duración de 10 minutos y 5 segundos, en el campo Tiempo de espera de la tarea, especifica
Haz clic en Crear o Actualizar.
gcloud
Para un trabajo que estés creando, sigue estos pasos:
gcloud run jobs create JOB_NAME --image IMAGE_URL --task-timeout TIMEOUT
Reemplazar
- JOB_NAME por el nombre de tu trabajo.
- IMAGE_URL por una referencia a la imagen del contenedor, como
us-docker.pkg.dev/cloudrun/container/job:latest
- TIMEOUT por la duración máxima de las tareas de trabajo, mediante la especificación de la cantidad de tiempo y las unidades: por ejemplo,
10m5s
es de diez minutos y cinco segundos.
Para un trabajo que estás actualizando:
gcloud run jobs update JOB_NAME --task-timeout TIMEOUT
YAML
Si creas un trabajo nuevo, omite este paso. Si actualizas un trabajo existente, descarga su configuración de YAML:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Actualiza el atributo
timeoutSeconds:
:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB spec: template: spec: template: spec: containers: - image: IMAGE timeoutSeconds: TIMEOUT
Reemplaza lo siguiente:
- JOB_NAME por el nombre de tu trabajo.
- IMAGE_URL por una referencia a la imagen del contenedor, como
us-docker.pkg.dev/cloudrun/container/job:latest
- TIMEOUT por la duración máxima de las tareas de trabajo,
y especifica la cantidad de tiempo y las unidades Solo puedes especificar la hora
como un valor de número entero en segundos, minutos u horas. Por ejemplo, para establecer
una duración de 10 minutos y 5 segundos, especifica
605s
.
También puedes especificar más opciones de configuración, como variables de entorno o límites de memoria.
Actualiza la configuración del trabajo existente:
gcloud run jobs replace job.yaml
Terraform
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Si quieres especificar el tiempo de espera de la tarea para un trabajo de Cloud Run, usa el recurso google_cloud_run_v2_job
y aplica el siguiente fragmento a tu archivo main.tf
:
Visualiza la configuración del 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:
Console
En la consola de Google Cloud, ve a la página de trabajos de Cloud Run:
Haz clic en el trabajo que te interesa para abrir la página Detalles del trabajo.
Haz clic en la pestaña Configuración.
Ubica la configuración del tiempo de espera de las tareas en los detalles de configuración.
gcloud
Usa el siguiente comando:
gcloud run jobs describe JOB_NAME
Busca la configuración de tiempo de espera de las tareas en la configuración que se muestra.