Visão geral da resposta de erro personalizada

Os balanceadores de carga de aplicativo externos globais permitem personalizar suas próprias respostas de erro quando um código de status de erro HTTP (4xx e 5xx) é gerado. É possível personalizar respostas de erro para erros gerados pelo balanceador de carga e pelas instâncias de back-end. Também é possível personalizar respostas de erro para códigos de resposta de erro gerados quando o tráfego é negado pelo Google Cloud Armor.

Veja um exemplo de uma página de erro personalizada em que é possível configurar respostas de erro para seu aplicativo de consumidor voltado para fora com o branding e o logotipo da sua própria empresa, links para páginas relacionadas e mensagens personalizadas.

Página personalizada de resposta de erro HTTP.
Página personalizada de resposta de erro de HTTP

Ao usar uma política de resposta de erro personalizada, é possível configurar respostas de erro diferentes para códigos de status de erro HTTP, domínios de URL, caminhos de URL e campos de parâmetro e cabeçalho de solicitação HTTP diferentes.

Retornar respostas de erro personalizadas ajuda a melhorar a experiência dos usuários, oferecendo os seguintes benefícios:

  • Proporciona uma experiência de marca consistente
  • Fornece informações contextuais e relevantes para melhorar a usabilidade e a experiência do usuário
  • Reduz o impacto negativo da inatividade e erros no lado do cliente
  • Melhora a segurança da rede

Se você não configurar uma política de resposta de erro personalizada, um objeto de erro genérico sem marca será exibido, conforme mostrado na Figura 2.

Página genérica de resposta de erro HTTP.
Página genérica de resposta de erro de HTTP

Casos de uso

O recurso personalizado de resposta de erro atende a muitos casos de uso. Nesta seção, veremos alguns exemplos gerais.

Definir sua própria página de manutenção

É possível retornar uma página de erro com o branding e as informações da empresa quando seus back-ends não estiverem íntegros ou no modo de manutenção. É possível criar páginas de erro contextuais que contenham informações úteis, como números de telefone da central de atendimento ou quando os usuários precisam tentar acessar o site novamente. Você tem a opção de personalizar páginas de erro com base na correspondência de condições de erro, como nome do host e código do erro HTTP.

Definir sua própria página de erro padrão

É possível configurar respostas de erro personalizadas por códigos de erro específicos. Por exemplo, você pode configurar uma página de erro com uma mensagem "Fazer login ou registro" para um código de resposta HTTP 401 (Unauthorized). Também é possível configurar uma página de erro padrão que contenha o branding da empresa e outras informações relevantes sobre todos os outros códigos de erro HTTP das séries 4xx e 5xx.

Definir respostas de erro para regras de segurança

É possível retornar uma página de erro personalizada para os códigos de resposta de erro gerados quando o tráfego é negado pelas políticas de segurança do Google Cloud Armor. Você precisa configurar a página de erro com o mesmo código de erro HTTP da série 4xx ou 5xx que você inseriu na regra de segurança do Google Cloud Armor.

Reduzir o impacto da inatividade

Quando aplicável, é possível configurar uma resposta de erro para retornar um código de status HTTP 200 (OK) e exibir uma página da Web estática para que os usuários vejam mais informações contextuais e úteis em vez de uma página de erro durante o tempo de inatividade.

Personalizar respostas de erro com base no tipo de solicitação do cliente

É possível personalizar uma resposta de erro com base em cabeçalhos e parâmetros de solicitação HTTP, por exemplo, o cabeçalho Content-Type. Ao rotear a solicitação original para o serviço de erro, o roteamento pode considerar o cabeçalho Content-Type para exibir uma página da Web (para solicitações de navegadores) ou JSON (para solicitações de um API da Web).

Como funcionam as políticas personalizadas de resposta de erro

Uma política personalizada de resposta de erro pode ser definida em três níveis do recurso de mapa de URL: o nível do balanceador de carga, o nível do domínio do URL e o nível do caminho do URL.

  • Nível do balanceador de carga. A política é aplicada a todo o tráfego recebido pelo balanceador de carga.

  • Nível do domínio do URL. A política é aplicada ao tráfego direcionado a um nome de domínio ou nome de host específico, por exemplo, www.example.com.

  • Nível do caminho do URL. A política é aplicada ao tráfego direcionado a um caminho específico, por exemplo, www.example.com/images/*. Nesse nível, também é possível usar condições de correspondência avançadas com cabeçalhos e parâmetros de solicitação HTTP, por exemplo, Content-Type:application/json.

A tabela a seguir mostra uma política personalizada de resposta de erro aplicada no nível do balanceador de carga, do domínio do URL e do caminho do URL do mapa de URL.

Nível da política Campo da API
Balanceador de carga urlMaps.defaultCustomErrorResponsePolicy
Domínio do URL pathMatchers[].defaultCustomErrorResponsePolicy
Caminho do URL

pathMatchers[].pathRules[].customErrorResponsePolicy

pathMatchers[].routeRules[].customErrorResponsePolicy

Se você configurar uma política de resposta de erro personalizada em vários níveis do recurso de mapa de URL, o objeto de erro especificado pela política personalizada no menor nível do mapa de URL será retornado. As políticas de resposta de erro definidas em um nível inferior do mapa de URL são mais específicas e têm precedência sobre as políticas de resposta de erro definidas em um nível superior do mapa de URL.

Por exemplo, uma política de resposta de erro personalizada no nível do balanceador de carga será aplicada somente se a política corresponder às condições de erro e nenhuma política correspondente for definida para o código de erro nos níveis mais baixos (o domínio do URL ou Caminho do URL. Da mesma forma, uma política de resposta de erro personalizada no nível do domínio do URL será aplicada somente se a política corresponder às condições de erro e nenhuma política correspondente for definida para o código de erro no nível inferior (o caminho do URL). Para saber mais sobre essa configuração, consulte Configurar políticas granulares de resposta de erro personalizada para diferentes domínios, caminhos e códigos de resposta de erro.

Especificar várias regras de resposta de erro para corresponder a códigos de resposta de erro HTTP

Em qualquer nível de uma política de resposta de erro personalizada, é possível especificar várias regras de resposta de erro. Essas regras podem corresponder uma resposta de erro HTTP a códigos de erro específicos ou a um intervalo de códigos de erro. Se você especificar uma regra para um intervalo de códigos de erro, bem como regras para códigos de erro específicos, as regras com códigos de erro específicos terão precedência.

Por exemplo, suponha que você configure uma regra para um código de erro 401 (Unauthorized) e outra regra para todos os códigos de erro da série 4xx. Se o serviço de back-end retornar um código de erro 401, a regra que corresponde ao erro 401 será aplicada. No entanto, se o serviço de back-end retornar um código de erro 403, a regra para erros 4xx entrará em vigor.

Substitua o código de resposta HTTP

As regras de resposta de erro permitem modificar o código de resposta HTTP retornado pelo balanceador de carga. Isso significa que você pode substituir o código de resposta gerado pelo servidor e definir o código de resposta final da solicitação. É possível especificar para retornar qualquer código de resposta HTTP, incluindo 200 (OK), as séries 4xx ou 5xx de códigos de resposta ou qualquer outro código de resposta de três dígitos. Para saber mais sobre a substituição do código de resposta, consulte Configurar uma página de erro para um código de erro específico de um host específico.

Limitações

  • Esse recurso é compatível apenas com o balanceador de carga de aplicativo externo global. Os modos regional e clássico não são compatíveis.

  • Se não for possível buscar o objeto de erro personalizado no serviço de erro, por exemplo, se o caminho do conteúdo estiver configurado incorretamente, um objeto de erro genérico sem marca vai ser exibido.

  • A política de resposta de erro personalizada não monitora nem filtra o objeto retornado pelo serviço de erro em busca de riscos de segurança. Portanto, você precisa ser diligente para eliminar vulnerabilidades e limitar o impacto de uma possível exposição.

  • Para evitar configurações incorretas ao usar um bucket do Cloud Storage, consulte as práticas recomendadas comuns do Cloud Storage.

Preços

Não há custo extra para usar respostas de erro personalizadas. Os preços padrão para o balanceamento de carga do Google Cloud são aplicáveis. Para saber mais informações, consulte Preços.

A seguir