Obtén información para configurar el tiempo en el que los servicios de Knative serving deben mostrar una respuesta a una solicitud. Si no se muestra una respuesta dentro del tiempo especificado, la solicitud finaliza y se muestra el error 504
.
Límites de tiempo de espera
El límite de tiempo de espera máximo varía en función de la versión de tu clúster de GKE.
Versión de GKE | Límite predeterminado | Límite de tiempo de espera máximo |
---|---|---|
0.16.0-gke.1 y posteriores | 300 segundos | 24 horas |
0.15.0-gke.3 y anteriores | 300 segundos | 900 segundos |
Además de cambiar el tiempo de espera de las solicitudes de Knative serving, 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.
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 establecer el tiempo de espera de las solicitudes con la consola de Google Cloud, Google Cloud CLI o un archivo YAML cuando implementas un servicio nuevo o actualizas un servicio existente e implementas una revisión:
Console
Ve a Knative serving en la consola de Google Cloud:
Haz clic en Crear servicio si quieres configurar un servicio nuevo en el que realizarás la implementación. Si quieres configurar un servicio existente, haz clic en el servicio y, luego, haz clic en IMPLEMENTAR Y EDITAR UNA NUEVA REVISIÓN.
En Configuración avanzada, haz clic en Contenedor.
En el campo Tiempo de espera de la solicitud (Request timeout), ingresa el valor de tiempo de espera que deseas usar. El valor que especifiques debe ser menor que el límite de tiempo de espera para la versión de GKE del clúster.
Haz clic en Siguiente para pasar a la siguiente sección.
En la sección Configura la forma en que se activa el servicio, selecciona la conectividad que deseas usar para invocar el servicio.
Haz clic en Crear para implementar la imagen en Knative serving y espera a que termine la implementación.
Línea de comandos
Para los servicios existentes, establece el tiempo de espera de la solicitud mediante la ejecución del comando
gcloud run services update
con el parámetro--timeout
:gcloud run services update SERVICE --timeout TIMEOUT
Reemplaza lo siguiente:
- 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). El valor que especifiques debe ser menor que el límite de tiempo de espera para la versión de GKE del clúster. Especifica0
para establecer el tiempo de espera en el valor predeterminado.
Para servicios nuevos, configura el tiempo de espera de la solicitud mediante la ejecución del comando
gcloud run deploy
con el parámetro--timeout
:gcloud run deploy SERVICE --image=IMAGE_URL --timeout TIMEOUT
Reemplaza lo siguiente:
- SERVICE por el nombre de tu servicio
- IMAGE_URL por una referencia a la imagen del contenedor, como
gcr.io/cloudrun/hello
- 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). El valor que especifiques debe ser menor que el límite de tiempo de espera para la versión de GKE del clúster. Especifica0
para establecer el tiempo de espera en el valor predeterminado.
YAML
Puedes descargar la configuración de un servicio existente en un archivo YAML con el comando gcloud run services describe
mediante la marca --format=export
.
Luego, puedes modificar ese archivo YAML e implementar esos cambios con el comando gcloud run services replace
.
Debes asegurarte de modificar solo los atributos especificados.
Descarga la configuración del servicio en un archivo llamado
service.yaml
en el lugar de trabajo local:gcloud run services describe SERVICE --format export > service.yaml
Reemplaza SERVICE por el nombre de tu servicio de Knative serving.
En tu archivo local, actualiza el atributo
timeoutSeconds
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: spec: containers: - image: IMAGE timeoutSeconds: TIMEOUT
Reemplaza lo siguiente:
- SERVICE por el nombre de tu servicio de Knative serving
- IMAGE_URL por una referencia a la imagen del contenedor, como
gcr.io/cloudrun/hello
- TIMEOUT por el tiempo de espera deseado, en segundos.
Reemplaza el servicio por la configuración nueva mediante el siguiente comando:
gcloud run services replace service.yaml