Configurar el tiempo de espera de la solicitud (servicios)

Para los servicios de Cloud Run, la configuración del tiempo de espera de las solicitudes especifica el tiempo en el que los servicios implementados en Cloud Run deben mostrar una respuesta. Si no se muestra una respuesta dentro del tiempo especificado, la solicitud finaliza y se muestra un error 504. Ten en cuenta que la instancia de contenedor que entregó la solicitud no finalizó.

El tiempo de espera se establece de forma predeterminada en 5 minutos (300 segundos) y se puede extender hasta 60 minutos (3600 segundos).

Puedes cambiar esta configuración cuando implementas una imagen de contenedor o actualizas la configuración del servicio.

Además de cambiar el tiempo de espera de las solicitudes de Cloud Run, también debes verificar el framework del lenguaje para ver si tiene su propia configuración de tiempo de espera de solicitudes que también debes actualizar. Es posible que algunos clientes del servicio de Cloud Run también impongan un tiempo de espera más restrictivo.

Roles obligatorios

Para obtener los permisos que necesitas para configurar y, luego, implementar los servicios de Cloud Run, pídele a tu administrador que te otorgue los siguientes roles de IAM:

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 servicio 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.

Configura y actualiza el tiempo de espera de las solicitudes

Cualquier cambio en la configuración conlleva la creación de una revisión nueva. Las revisiones posteriores también adoptarán esta configuración de manera automática, a menos que realices actualizaciones explícitas para cambiarla.

Puedes configurar el tiempo de espera de las solicitudes mediante la consola de Google Cloud, la línea de comandos de gcloud o un archivo YAML cuando creas un servicio nuevo o implementas una revisión nueva.

Console

  1. En la consola de Google Cloud ve a Cloud Run:

    Ir a Cloud Run

  2. Haz clic en Implementar contenedor y selecciona Servicio para configurar un servicio nuevo. Si quieres configurar un servicio existente, haz clic en el servicio y, luego, en implementar y editar la nueva revisión.

  3. Si configuras un servicio nuevo, completa la página de configuración del servicio inicial como desees y haz clic en Contenedores, volúmenes, Herramientas de redes y seguridad para expandir la página de configuración del servicio.

  4. Haz clic en la pestaña Contenedor.

    imagen

    • En el campo Tiempo de espera de la solicitud, ingresa el valor de tiempo de espera que deseas usar en segundos. Usa valores que varían de 1 a 3600 segundos o de 1 a 60 minutos.
  5. Haz clic en Crear o Implementar.

gcloud

Puedes actualizar el tiempo de espera de la solicitud para una revisión determinada en cualquier momento mediante el siguiente comando:

gcloud run services update [SERVICE] --timeout=[TIMEOUT]

Reemplazar

  • [SERVICE] por el nombre de tu servicio.
  • [TIMEOUT] por el tiempo deseado, con un valor de número entero o un valor de duración absoluta, por ejemplo, 1m20s (1 minuto, 20 segundos). Si usas un valor de número entero, se supone que la unidad será en segundos. El valor que especifiques debe ser inferior a 60 minutos.

También puedes configurar el tiempo de espera de las solicitudes durante la implementación mediante el siguiente comando:

gcloud run deploy --image IMAGE_URL --timeout=[TIMEOUT]

Reemplazar

  • IMAGE_URL por una referencia a la imagen del contenedor, como us-docker.pkg.dev/cloudrun/container/hello:latest Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL tiene el formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • [TIMEOUT] por el tiempo deseado, con un valor de número entero o de duración, por ejemplo 1m20s, que es 1 minuto, 20 segundos. Si usas un valor de número entero, se supone que la unidad será en segundos. El valor que especifiques debe ser inferior a 60 minutos.

YAML

  1. Si creas un servicio nuevo, omite este paso. Si actualizas un servicio existente, descarga su configuración de YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Actualiza el atributo timeoutSeconds:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          name: REVISION
        spec:
          containers:
          - image: IMAGE
          timeoutSeconds: VALUE

    Reemplazar

    • SERVICE por el nombre del servicio de Cloud Run
    • IMAGE_URL por una referencia a la imagen del contenedor, como us-docker.pkg.dev/cloudrun/container/hello:latest Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL tiene el formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • VALUE por el tiempo de espera deseado, en segundos.
    • REVISION por un nombre de revisión nuevo o bórralo (si está presente). Si proporcionas un nuevo nombre de revisión, debe cumplir con los siguientes criterios:
      • Comienza con SERVICE-
      • Solo contiene letras minúsculas, números y -
      • No termina con -
      • No supera los 63 caracteres
  3. Crea o actualiza el servicio con el siguiente comando:

    gcloud run services replace service.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.

Agrega lo siguiente a un recurso google_cloud_run_v2_service en la configuración de Terraform, en template. Reemplaza 300s por el tiempo de espera de la solicitud del servicio que desees.

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-request-timeout"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
    }
    # Timeout
    timeout = "300s"
  }
}

Visualiza la configuración de tiempo de espera de solicitudes

Para ver la configuración actual de tiempo de espera de solicitudes de tu servicio de Cloud Run, sigue estos pasos:

Console

  1. En la consola de Google Cloud ve a Cloud Run:

    Ir a Cloud Run

  2. Haz clic en el servicio que te interesa para abrir la página Detalles del servicio.

  3. Haz clic en la pestaña Revisiones.

  4. En el panel de detalles a la derecha, la configuración de tiempo de espera de solicitudes se muestra en la pestaña Contenedor.

gcloud

  1. Usa el siguiente comando:

    gcloud run services describe SERVICE
  2. Busca la configuración de tiempo de espera de solicitudes en la configuración que se muestra.