Panoramica delle risposte di errore personalizzate

I bilanciatori del carico delle applicazioni esterni globali consentono di personalizzare le risposte di errore quando viene generato un codice di stato di errore HTTP (4xx e 5xx). Puoi personalizzare le risposte per errori generati sia dal bilanciatore del carico sia dalle istanze di backend. Puoi anche personalizzare le risposte di errore per i codici di risposta di errore generati quando il traffico viene rifiutato da Google Cloud Armor.

Ecco un esempio di pagina di errore personalizzata in cui puoi configurare le risposte di errore per l'applicazione consumer rivolta all'esterno con il branding e il logo della tua azienda, i link alle pagine correlate e la messaggistica personalizzata.

Pagina personalizzata di risposta di errore HTTP.
Pagina di risposta di errore HTTP personalizzata

Utilizzando un criterio di risposta di errore personalizzato, puoi configurare diverse risposte di errore per diversi codici di stato degli errori HTTP, domini URL, percorsi URL e campi di parametri e intestazione della richiesta HTTP.

La restituzione delle risposte di errore personalizzate consente di migliorare l'esperienza degli utenti offrendo i seguenti vantaggi:

  • Forniscono un'esperienza di branding coerente
  • Fornisce informazioni contestuali e pertinenti per migliorare usabilità ed esperienza
  • Mitigazione dell’impatto negativo dei tempi di inattività e degli errori lato client
  • Migliora la sicurezza della rete

Se non configuri un criterio di risposta di errore personalizzato, viene pubblicato un oggetto di errore generico senza brand, come mostrato nella Figura 2.

Pagina di risposta di errore HTTP generica.
Pagina di risposta a un errore HTTP generico

Casi d'uso

La funzionalità di risposta di errore personalizzata è adatta a molti casi d'uso. Questa sezione fornisce alcuni esempi generali.

Definisci la tua pagina di manutenzione

Puoi restituire una pagina di errore con il branding e le informazioni dell'azienda quando i backend non sono integri o sono in modalità di manutenzione. Puoi creare pagine di errore contestuali che contengono informazioni utili, come i numeri di telefono del contact center o quando gli utenti devono riprovare ad accedere al sito web. Puoi personalizzare le pagine di errore in base alla corrispondenza delle condizioni di errore, come il nome host e il codice di errore HTTP.

Definisci la tua pagina di errore predefinita

Puoi configurare risposte di errore personalizzate in base a codici di errore specifici. Ad esempio, puoi configurare una pagina di errore con un messaggio "Accedi o registra" per un codice di risposta HTTP 401 (Unauthorized). Puoi anche configurare una pagina di errore predefinita contenente il branding dell'azienda e altre informazioni pertinenti per tutti i codici di errore HTTP delle serie 4xx e 5xx.

Definisci le risposte di errore per le regole di sicurezza

Puoi restituire una pagina di errore personalizzata per i codici di risposta di errore generati quando il traffico viene negato dai criteri di sicurezza di Google Cloud Armor. Devi assicurarti di configurare la pagina di errore con lo stesso codice di errore HTTP della serie 4xx o della serie 5xx che hai inserito nella regola di sicurezza di Google Cloud Armor.

Ridurre l’impatto del tempo di inattività

Se applicabile, puoi configurare una risposta di errore in modo che restituisca un codice di stato HTTP 200 (OK) e pubblichi una pagina web statica in modo che gli utenti vedano informazioni più contestuali e utili invece di una pagina di errore durante il tempo di inattività.

Personalizza le risposte di errore in base al tipo di richiesta del client

Puoi personalizzare una risposta di errore in base a intestazioni e parametri delle richieste HTTP, ad esempio l'intestazione Content-Type. Durante il routing della richiesta originale al servizio di errore, il routing può prendere in considerazione l'intestazione Content-Type per pubblicare una pagina web (per le richieste dai browser) o JSON (per le richieste da un'API web).

Come funzionano i criteri personalizzati relativi alle risposte di errore

È possibile definire un criterio di risposta di errore personalizzato a tre livelli della risorsa mappa URL: a livello del bilanciatore del carico, a livello di dominio dell'URL e a livello di percorso dell'URL.

  • Livello del bilanciatore del carico. Il criterio viene applicato a tutto il traffico ricevuto dal bilanciatore del carico.

  • A livello di dominio dell'URL. Il criterio viene applicato al traffico indirizzato a un nome di dominio o a un nome host specifico, ad esempio www.example.com.

  • A livello di percorso dell'URL. Il criterio viene applicato al traffico indirizzato a un percorso specifico, ad esempio www.example.com/images/*. A questo livello, puoi anche utilizzare condizioni di corrispondenza avanzate con parametri e intestazioni delle richieste HTTP, ad esempio Content-Type:application/json.

La seguente tabella mostra un criterio di risposta di errore personalizzato applicato a livello del bilanciatore del carico, a livello di dominio dell'URL e a livello di percorso dell'URL della mappa URL.

Livello del criterio Campo API
Bilanciatore del carico urlMaps.defaultCustomErrorResponsePolicy
Dominio dell'URL pathMatchers[].defaultCustomErrorResponsePolicy
Percorso dell'URL

pathMatchers[].pathRules[].customErrorResponsePolicy

pathMatchers[].routeRules[].customErrorResponsePolicy

Se configuri un criterio di risposta di errore personalizzato a più livelli della risorsa di mappa URL, viene restituito l'oggetto di errore specificato dal criterio di errore personalizzato al livello più basso della mappa URL. I criteri di risposta di errore definiti a un livello inferiore della mappa URL sono più specifici e hanno la precedenza sui criteri di risposta di errore definiti a un livello superiore della mappa URL.

Ad esempio, un criterio di risposta di errore personalizzato a livello del bilanciatore del carico viene applicato solo se il criterio soddisfa le condizioni di errore e non è stato definito nessun criterio di corrispondenza per il codice di errore ai livelli inferiori, ovvero il dominio o il percorso dell'URL. Analogamente, un criterio di risposta di errore personalizzato a livello di dominio dell'URL viene applicato solo se il criterio soddisfa le condizioni di errore e non è stata definita alcuna norma corrispondente per il codice di errore al livello inferiore, ovvero il percorso dell'URL. Per saperne di più su questa configurazione, consulta Configurare criteri personalizzati di risposta agli errori granulari per domini, percorsi e codici di risposta di errore diversi.

Specificare più regole di risposta di errore per far corrispondere i codici di risposta di errore HTTP

A qualsiasi livello, all'interno di un criterio di risposta di errore personalizzato, puoi specificare più regole di risposta di errore. Queste regole possono abbinare una risposta di errore HTTP a codici di errore specifici o un intervallo di codici di errore. Se specifichi una regola per un intervallo di codici di errore e regole per codici di errore specifici, le regole con codici di errore specifici hanno la precedenza.

Ad esempio, supponiamo di configurare una regola per un codice di errore 401 (Unauthorized) e un'altra regola per tutti i codici di errore della serie 4xx. Se il servizio di backend restituisce un codice di errore 401, viene applicata la regola che corrisponde all'errore 401. Tuttavia, se il servizio di backend restituisce un codice di errore 403, viene applicata la regola per gli errori 4xx.

Esegui l'override del codice di risposta HTTP

Le regole relative alle risposte di errore consentono di modificare il codice di risposta HTTP restituito dal bilanciatore del carico. Ciò significa essenzialmente che puoi sostituire il codice di risposta generato dal server e definire quale debba essere il codice di risposta finale per la richiesta. Puoi specificare di restituire qualsiasi codice di risposta HTTP, tra cui 200 (OK), la serie 4xx o la serie 5xx o qualsiasi altro codice di risposta a tre cifre. Per ulteriori informazioni sull'override del codice di risposta, consulta Configurare una pagina di errore per un codice di errore specifico per un host specifico.

Limitazioni

  • Questa funzionalità è supportata solo con il bilanciatore del carico delle applicazioni esterno globale. Le modalità a livello di regione e classica non sono supportate.

  • Se non è possibile recuperare l'oggetto di errore personalizzato dal servizio di errore, ad esempio se il percorso dei contenuti non è configurato correttamente, viene pubblicato un oggetto di errore generico non correlato al brand.

  • Il criterio di risposta di errore personalizzato non monitora né filtra l'oggetto restituito dal servizio di errori per i rischi per la sicurezza. Quindi, dovresti essere diligente nell'eliminazione delle vulnerabilità e nella limitazione dell'impatto di una potenziale esposizione.

  • Per evitare configurazioni errate durante l'utilizzo di un bucket Cloud Storage, consulta le best practice comuni per Cloud Storage.

Prezzi

Non sono previsti costi aggiuntivi per l'utilizzo delle risposte di errore personalizzate. Si applicano i prezzi standard per il bilanciamento del carico di Google Cloud. Per ulteriori informazioni, consulta la sezione Prezzi.

Passaggi successivi