Descripción general de la respuesta de error personalizada

Los balanceadores de cargas de aplicaciones externos globales te permiten personalizar tus propias respuestas de error cuando se genera un código de estado de error de HTTP (4xx y 5xx). Puedes personalizar las respuestas de error para los errores que generan el balanceador de cargas y las instancias de backend. También puedes personalizar las respuestas de error para los códigos de respuesta de error que se generan cuando Google Cloud Armor rechaza el tráfico.

Este es un ejemplo de una página de error personalizada en la que puedes configurar respuestas de error para tu aplicación externa de consumidor con la marca y el logotipo de tu empresa, vínculos a páginas relacionadas y mensajería personalizada.

Página de respuesta de error de HTTP personalizada.
Página de respuesta de error de HTTP personalizada

Mediante una política de respuesta de error personalizada, puedes configurar diferentes respuestas de error para diferentes códigos de estado de error de HTTP, dominios de URL, rutas de URL y campos de parámetros y encabezados de solicitud HTTP.

Mostrar respuestas de error personalizadas te ayuda a mejorar la experiencia de los usuarios, ya que ofrece los siguientes beneficios:

  • Brinda una experiencia coherente de desarrollo de la marca.
  • Proporciona información contextual y relevante para mejorar la usabilidad y la experiencia del usuario.
  • Mitiga el impacto negativo del tiempo de inactividad y los errores del cliente
  • Mejora la seguridad de la red.

Si no configuras una política de respuesta de error personalizada, se entrega un objeto de error genérico sin marca, como se muestra en la figura 2.

Página de respuesta de error de HTTP genérica.
Página de respuesta de error de HTTP genérica

Casos de uso

La función de respuesta de error personalizada aborda muchos casos de uso. En esta sección, se proporcionan algunos ejemplos de alto nivel.

Define tu propia página de mantenimiento

Puedes mostrar una página de error con la marca y la información de la empresa cuando tus backends están en mal estado o en modo de mantenimiento. Puedes crear páginas de error contextuales que contengan información útil, como números de teléfono del centro de contacto o cuándo los usuarios deben intentar acceder al sitio web. Tienes la opción de personalizar las páginas de error según la coincidencia de las condiciones de error, como el nombre de host y el código de error de HTTP.

Define tu propia página de error predeterminada

Puedes configurar respuestas de error personalizadas según códigos de error específicos. Por ejemplo, puedes configurar una página de error con un mensaje de “Acceder o registrar” para un código de respuesta HTTP 401 (Unauthorized). También puedes configurar una página de error predeterminada que contenga la marca de la empresa y otra información relevante para todas las demás series 4xx y códigos de error de HTTP de las series 5xx.

Define respuestas de error para las reglas de seguridad

Puedes mostrar una página de error personalizada para los códigos de respuesta de error que se generan cuando las políticas de seguridad de Google Cloud Armor rechazan el tráfico. Debes asegurarte de configurar la página de error con el mismo código de error de HTTP de la serie 4xx o de la serie 5xx que ingresaste en la regla de seguridad de Google Cloud Armor.

Mitiga el impacto del tiempo de inactividad

Cuando corresponda, puedes configurar una respuesta de error para que muestre un código de estado HTTP 200 (OK) y entregue una página web estática a fin de que los usuarios vean información más contextual y útil en lugar de una página de error durante el tiempo de inactividad.

Personaliza las respuestas de error según el tipo de solicitud del cliente

Puedes personalizar una respuesta de error según los encabezados y parámetros de solicitud HTTP, por ejemplo, el encabezado Content-Type. Cuando se enruta la solicitud original al servicio de error, el enrutamiento puede tener en cuenta que el encabezado Content-Type entrega una página web (para solicitudes de navegadores) o JSON (para solicitudes de un API web).

Cómo funcionan las políticas de respuesta de error personalizadas

Se puede definir una política de respuesta de error personalizada en tres niveles del recurso de mapa de URL: el nivel del balanceador de cargas, el nivel de dominio de URL y el nivel de ruta de URL.

  • Nivel del balanceador de cargas. La política se aplica a todo el tráfico que recibe el balanceador de cargas.

  • Nivel de dominio de la URL. La política se aplica al tráfico que se dirige a un nombre de dominio específico o a un nombre de host, por ejemplo, www.example.com.

  • Nivel de la ruta de URL. La política se aplica al tráfico dirigido a una ruta específica, por ejemplo, www.example.com/images/*. En este nivel, también puedes usar condiciones de coincidencia avanzadas con encabezados y parámetros de solicitudes HTTP, por ejemplo, Content-Type:application/json.

En la siguiente tabla, se muestra una política de respuesta de error personalizada aplicada a nivel del balanceador de cargas, de dominio de URL y de la ruta de URL del mapa de URL.

Nivel de política Campo de API
Balanceador de cargas urlMaps.defaultCustomErrorResponsePolicy
Dominio de URL pathMatchers[].defaultCustomErrorResponsePolicy
Ruta de URL

pathMatchers[].pathRules[].customErrorResponsePolicy

pathMatchers[].routeRules[].customErrorResponsePolicy

Si configuras una política de respuesta de error personalizada en varios niveles del recurso de mapa de URL, se muestra el objeto de error especificado por la política de error personalizada en el nivel más bajo del mapa de URL. Las políticas de respuesta de error definidas en un nivel inferior del mapa de URL son más específicas y tienen prioridad sobre las políticas de respuesta de error definidas en un nivel superior del mapa de URL.

Por ejemplo, una política de respuesta de error personalizada en el nivel del balanceador de cargas se aplica solo si la política coincide con las condiciones de error y no se definió ninguna política coincidente para el código de error en los niveles inferiores: el dominio de URL o ruta de URL. Del mismo modo, una política de respuesta de error personalizada en el nivel de dominio de la URL se aplica solo si la política coincide con las condiciones de error y no se definió ninguna política coincidente para el código de error en el nivel inferior: la ruta de URL. A fin de obtener más información sobre esta configuración, consulta Configura políticas de respuesta de error personalizadas detalladas para diferentes dominios, rutas y códigos de respuesta de error.

Especifica varias reglas de respuesta de error para que coincidan con los códigos de respuesta de error de HTTP

En cualquier nivel dentro de una política de respuesta de error personalizada, puedes especificar varias reglas de respuesta de error. Estas reglas pueden hacer coincidir una respuesta de error de HTTP con códigos de error específicos o un rango de códigos de error. Si especificas una regla para un rango de códigos de error y reglas para códigos de error específicos, las reglas con códigos de error específicos tienen prioridad.

Por ejemplo, supongamos que configuras una regla para un código de error 401 (Unauthorized) y otra regla para todos los códigos de error de la serie 4xx. Si el servicio de backend muestra un código de error 401, se aplica la regla que coincide con el error 401. Sin embargo, si el servicio de backend muestra un código de error 403, se aplica la regla para errores 4xx.

Anula el código de respuesta HTTP

Las reglas de respuesta de error te permiten modificar el código de respuesta HTTP que muestra el balanceador de cargas. Esto significa que puedes anular el código de respuesta que genera el servidor y definir cuál debe ser el código de respuesta final para la solicitud. Puedes especificar que se muestre cualquier código de respuesta HTTP, incluido 200 (OK), la serie 4xx o la serie 5xx de códigos de respuesta, o cualquier otro código de respuesta de tres dígitos. Si deseas obtener más información sobre cómo anular el código de respuesta, consulta Configura una página de error para un código de error específico para un host específico.

Limitaciones

  • Esta función solo es compatible con el balanceador de cargas de aplicaciones externo global. No se admiten los modos regional y clásico.

  • Si el objeto de error personalizado no se puede recuperar del servicio de errores, por ejemplo, si la ruta de contenido está mal configurada, se entrega un objeto de error genérico sin marca.

  • La política de respuesta de error personalizada no supervisa ni filtra el objeto que muestra el servicio de error para detectar riesgos de seguridad. Por lo tanto, debes ser cuidadoso a la hora de eliminar las vulnerabilidades y limitar el impacto de una posible exposición.

  • Para evitar una configuración incorrecta mientras usas un bucket de Cloud Storage, revisa las prácticas recomendadas comunes para Cloud Storage.

Precios

No se aplican costos adicionales por usar respuestas de error personalizadas. Se aplica el precio estándar para el balanceo de cargas de Google Cloud. Para obtener más información, consulta Precios.

¿Qué sigue?