Service Extensions ti consente di utilizzare le estensioni per istruire i bilanciatori del carico delle applicazioni supportati a utilizzare i plug-in o inviare callout dal percorso dei dati di bilanciamento del carico per chiamare i servizi di backend o i servizi Google. Questa pagina fornisce una panoramica delle estensioni di Cloud Load Balancing.
Puoi configurare i bilanciatori del carico delle applicazioni in modo che utilizzino i seguenti tipi di estensioni:
Le estensioni edge ti aiutano a manipolare le intestazioni delle richieste per influenzare la selezione del servizio di backend e i contenuti che Cloud CDN pubblica dalla cache. Queste estensioni sono configurate per essere eseguite all'inizio del ciclo di vita dell'elaborazione delle richieste per influenzare rispettivamente le decisioni di memorizzazione nella cache e di routing, all'edge.
Le estensioni di route ti aiutano a influenzare la scelta del servizio di backend. Queste estensioni sono configurate per essere eseguite all'inizio del ciclo di vita di elaborazione delle richieste.
Le estensioni di autorizzazione ti aiutano a inviare richieste di autorizzazione al tuo motore di autorizzazione personalizzato. Questi vengono configurati alla fine del ciclo di elaborazione poco prima che il bilanciatore del carico invii le richieste ai backend.
Le estensioni del traffico contribuiscono a supportare logiche di sicurezza personalizzate aggiuntive e funzionalità di gestione del traffico. Queste vengono configurate dopo le estensioni di autorizzazione, ma prima che il bilanciatore del carico invii richieste ai backend o riceva risposte.
Bilanciatori del carico delle applicazioni supportati per le estensioni gestite dall'utente
Service Extensions supporta le estensioni gestite dall'utente per i seguenti bilanciatori del carico delle applicazioni:
| Bilanciatori del carico delle applicazioni | Estensioni | |||||||
|---|---|---|---|---|---|---|---|---|
| Edge | Route | Autorizzazione | Traffico | |||||
| Plug-in | Plug-in | Callout | Callout | Plug-in | Callout | |||
| Bilanciatore del carico delle applicazioni esterno globale | ✓ | ✓ | ✓ | ✓ | ||||
| Bilanciatore del carico delle applicazioni esterno regionale | ✓ Anteprima | ✓ | ✓ | ✓ Anteprima | ✓ | |||
| Bilanciatore del carico delle applicazioni interno regionale | ✓ Anteprima | ✓ | ✓ | ✓ Anteprima | ✓ | |||
| Bilanciatore del carico delle applicazioni interno tra regioni | ✓ | ✓ | ✓ | ✓ | ✓ | |||
Punti di estensibilità nel percorso dei dati di bilanciamento del carico
Service Extensions supporta le estensioni in diverse fasi del percorso dei dati di bilanciamento del carico.
La Figura 1 mostra come Service Extensions supporta le estensioni nelle fasi di gestione del traffico e sicurezza delle applicazioni per i bilanciatori del carico delle applicazioni esterni globali.
La figura 2 mostra come Service Extensions supporta le estensioni nelle fasi di routing, sicurezza delle applicazioni e gestione del traffico per questi tipi di bilanciatori del carico: bilanciatore del carico delle applicazioni esterno regionale, bilanciatore del carico delle applicazioni interno regionale e bilanciatore del carico delle applicazioni interno tra regioni.
Come funzionano le estensioni di Edge
Le estensioni perimetrali vengono eseguite per prime nel percorso di elaborazione delle richieste e ti consentono di utilizzare le intestazioni delle richieste per influenzare la selezione del servizio di backend e i contenuti che Cloud CDN gestisce dalla cache.
Dopo che un bilanciatore del carico chiama un'estensione edge, esegue le seguenti operazioni:
- Seleziona il servizio di backend valutando la mappa URL
- Applica i criteri di Google Cloud Armor criteri di sicurezza
- Esegue una ricerca nella cache e pubblica i contenuti dalla cache se si verifica un successo della cache
- Applica le policy di Cloud Armor per il servizio di backend selezionato
- Applica le policy CORS
- Applica la policy di affinità sessione stateful
- Applica i criteri Identity-Aware Proxy (IAP) per il servizio di backend selezionato
- Estensioni di autorizzazione delle chiamate, se configurate nel percorso di elaborazione del servizio di backend selezionato
- Esegue l'inserimento di errori
- Estensioni di chiamata, se presenti
- Esegue le riscritture URL
- Esegue la manipolazione delle intestazioni in base alla mappa URL e aggiunge variabili di intestazione della richiesta personalizzate
- Esegue reindirizzamenti o routing al servizio di backend selezionato applicando timeout e criteri di riprova nella mappa URL e nelle impostazioni di bilanciamento del carico per il servizio di backend.
- Esegue il mirroring delle richieste
Come funzionano le estensioni route
Le estensioni di route vengono eseguite per prime nel percorso di elaborazione delle richieste quando il bilanciatore del carico riceve le intestazioni delle richieste e prima di valutare la mappa URL.
Dopo che un bilanciatore del carico chiama un'estensione di route per una richiesta, esegue le seguenti operazioni:
- Seleziona il servizio di backend valutando la mappa URL
- Applica le policy di Cloud Armor per il servizio di backend selezionato
- Applica le policy IAP per il servizio di backend selezionato
- Esegue l'inserimento di errori
- Esegue le trasformazioni delle intestazioni delle richieste e risolve le variabili delle intestazioni delle richieste personalizzate
- Estensioni del traffico delle chiamate, se esistono nel percorso di elaborazione del servizio di backend selezionato
- Esegue le riscritture URL
- Esegue reindirizzamenti o routing al servizio di backend selezionato e applica timeout e criteri di riprova nella mappa URL e in altre impostazioni di bilanciamento del carico per il servizio di backend
Come funzionano le estensioni di autorizzazione
Puoi configurare le policy di autorizzazione con le estensioni di autorizzazione per delegare le decisioni di autorizzazione a motori di autorizzazione personalizzati. Per ulteriori informazioni sulle policy di autorizzazione, consulta Panoramica delle policy di autorizzazione.
Le estensioni di autorizzazione vengono chiamate nel percorso della richiesta dopo che sono state chiamate le estensioni di route ed è stato selezionato un backend per la richiesta. Queste estensioni non possono influire sulla selezione del servizio di backend.
In anteprima, per i bilanciatori del carico delle applicazioni esterni regionali e i bilanciatori del carico delle applicazioni interni regionali, i criteri di autorizzazione vengono richiamati dopo le estensioni delle route. Quando progetti le estensioni di autorizzazione, tieni presente quanto segue:
Le estensioni richiamate dai criteri di autorizzazione del tipo di profilo
REQUEST_AUTHZricevono e valutano solo le intestazioni delle richieste HTTP con il protocolloext_procoext_authz.Le estensioni richiamate dai criteri di autorizzazione del tipo di profilo
CONTENT_AUTHZricevono intestazioni, corpo e trailer di richieste e risposte. Questi devono essere configurati nella modalità di elaborazione del corpo delext_procprotocolloFULL_DUPLEX_STREAMED.
Nel percorso dei dati, le estensioni di autorizzazione basate sulle policy di autorizzazione delle richieste vengono eseguite prima di quelle basate sulle policy di autorizzazione dei contenuti.
Come funzionano le estensioni traffico
I bilanciatori del carico eseguono le estensioni del traffico per ultime nel percorso di elaborazione delle richieste e per prime nel percorso di elaborazione delle risposte.
Queste estensioni consentono di modificare le intestazioni e i payload di richieste e risposte senza influire sulla scelta del servizio di backend. Puoi anche utilizzare le estensioni del traffico per la registrazione personalizzata specificando le informazioni che vuoi registrare, il formato e il provider esterno.
Prima che un bilanciatore del carico chiami un'estensione del traffico nel percorso della richiesta per una richiesta, esegue le seguenti operazioni:
- Esegue l'inserimento di errori
- Seleziona un servizio di backend per la richiesta
- Applica le policy di Cloud Armor per il servizio di backend selezionato
- Applica le policy IAP per il servizio di backend selezionato
- Applica le policy di memorizzazione nella cache di Cloud CDN per il servizio di backend selezionato nel caso dei bilanciatori del carico delle applicazioni esterni globali.
Dopo che un bilanciatore del carico chiama un'estensione del traffico nel percorso della richiesta, esegue le seguenti operazioni:
- Esegue le riscritture URL
- Esegue la manipolazione delle intestazioni in base alla mappa URL e aggiunge variabili di intestazione della richiesta personalizzate
- Esegue reindirizzamenti o routing al servizio di backend selezionato applicando timeout e criteri di riprova nella mappa URL e nelle impostazioni di bilanciamento del carico per il servizio di backend.
- Esegue il mirroring delle richieste
Dopo che un bilanciatore del carico chiama un'estensione del traffico nel percorso di risposta per una richiesta, esegue le seguenti operazioni:
- Esegue trasformazioni dell'intestazione della risposta e risolve le variabili di intestazione della risposta personalizzate
- Esegue il logging utilizzando Cloud Logging
- Esegue la memorizzazione nella cache di Cloud CDN nel caso di bilanciatori del carico delle applicazioni esterni globali
Intestazioni personalizzate
Nel percorso del traffico, le estensioni di edge e route vengono eseguite nei punti di estensibilità prima della fase in cui il bilanciatore del carico aggiunge intestazioni personalizzate. Pertanto, le intestazioni ricevute dalle estensioni edge e route non contengono le intestazioni personalizzate aggiunte dal bilanciatore del carico.
Per rendere disponibili le informazioni che di solito inserisci nelle intestazioni personalizzate per le estensioni di edge e route, valuta la possibilità di utilizzare un attributo supportato.
Limitazioni delle estensioni
- Una regola di forwarding può avere una sola risorsa
LbEdgeExtension, una risorsaLbTrafficExtensione una risorsaLbRouteExtension. - Per i callout, il servizio di backend di callout deve trovarsi nello stesso progetto della regola di forwarding.
- I riferimenti tra progetti tra le estensioni e le regole di inoltro non sono supportati.
Passaggi successivi
- Panoramica dei plug-in
- Panoramica dei callout di Cloud Load Balancing
- Integrazione con i servizi Google