Les extensions de service vous permettent d'utiliser des extensions pour demander aux équilibreurs de charge d'application compatibles d'utiliser des plug-ins ou d'envoyer des appels depuis le chemin de données d'équilibrage de charge pour appeler des services de backend ou des services Google. Cette page présente les extensions Cloud Load Balancing.
Vous pouvez configurer les équilibreurs de charge d'application pour qu'ils utilisent les types d'extensions suivants :
Les extensions Edge vous aident à manipuler les en-têtes de requête pour influencer la sélection du service de backend et le contenu que Cloud CDN diffuse à partir du cache. Ces extensions sont configurées pour s'exécuter tôt dans le cycle de vie du traitement des requêtes afin d'influencer les décisions de mise en cache et de routage, respectivement, en périphérie.
Les extensions de route vous aident à influencer la sélection du service de backend. Ces extensions sont configurées pour s'exécuter tôt dans le cycle de vie du traitement des requêtes.
Les extensions d'autorisation vous aident à envoyer des demandes d'autorisation à votre moteur d'autorisation personnalisé. Vous les configurez à la fin du cycle de traitement, juste avant que l'équilibreur de charge n'envoie des requêtes aux backends.
Les extensions de trafic permettent de prendre en charge une logique de sécurité personnalisée supplémentaire et des fonctionnalités de gestion du trafic. Vous les configurez après les extensions d'autorisation, mais avant que l'équilibreur de charge n'envoie des requêtes aux backends ou n'en reçoive des réponses.
Équilibreurs de charge d'application compatibles pour les extensions gérées par l'utilisateur
Service Extensions est compatible avec les extensions gérées par l'utilisateur pour les équilibreurs de charge d'application suivants :
| Équilibreurs de charge d'application | Extensions | |||||||
|---|---|---|---|---|---|---|---|---|
| Edge | Route | Autorisation | Trafic | |||||
| Plug-ins | Plug-ins | Légendes | Légendes | Plug-ins | Légendes | |||
| Équilibreur de charge d'application externe global | ✓ | ✓ | ✓ | ✓ | ||||
| Équilibreur de charge d'application externe régional | ✓ Aperçu | ✓ | ✓ | ✓ Aperçu | ✓ | |||
| Équilibreur de charge d'application interne régional | ✓ Aperçu | ✓ | ✓ | ✓ Aperçu | ✓ | |||
| Équilibreur de charge d'application interne interrégional | ✓ | ✓ | ✓ | ✓ | ✓ | |||
Points d'extensibilité dans le chemin de données d'équilibrage de charge
Les extensions de service sont compatibles avec les extensions à différentes étapes du chemin d'accès aux données d'équilibrage de charge.
La figure 1 montre comment Service Extensions prend en charge les extensions dans les étapes de sécurité des applications et de gestion du trafic pour les équilibreurs de charge d'application externes mondiaux.
La figure 2 montre comment les extensions de service sont compatibles avec les extensions dans les étapes de routage, de sécurité des applications et de gestion du trafic pour les types d'équilibreurs de charge suivants : équilibreur de charge d'application externe régional, équilibreur de charge d'application interne régional et équilibreur de charge d'application interne interrégional.
Fonctionnement des extensions Edge
Les extensions en périphérie s'exécutent en premier dans le chemin de traitement des requêtes. Elles vous permettent d'utiliser les en-têtes de requête pour influencer la sélection du service de backend et le contenu que Cloud CDN diffuse à partir du cache.
Une fois qu'un équilibreur de charge appelle une extension Edge, il effectue les opérations suivantes :
- Sélectionne le service de backend en évaluant le mappage d'URL
- Applique les stratégies Google Cloud Armor de sécurité
- Effectue une recherche dans le cache et diffuse le contenu à partir du cache en cas de succès de cache (hit)
- Applique les règles Cloud Armor au service de backend sélectionné.
- Appliquer les règles CORS
- Applique la stratégie d'affinité de session avec état
- Applique les règles Identity-Aware Proxy (IAP) au service de backend sélectionné.
- Extensions d'autorisation des appels, le cas échéant configurées dans le chemin de traitement du service de backend sélectionné
- Effectue l'injection de pannes
- Extensions de trafic des appels, le cas échéant
- Effectue des réécritures d'URL
- Effectue la manipulation des en-têtes en fonction du mappage d'URL et ajoute des variables d'en-tête de requête personnalisées
- Effectue des redirections ou un routage vers le service de backend sélectionné tout en appliquant des délais d'attente et des règles de réessai dans le mappage d'URL et les paramètres d'équilibrage de charge pour le service de backend
- Effectue la mise en miroir des requêtes
Fonctionnement des extensions d'autorisation
Dans le chemin de la requête, les extensions d'autorisation sont appelées après les extensions de route et après la sélection d'un backend pour la requête. Ces extensions ne peuvent pas influencer la sélection du service de backend.
Les extensions d'autorisation ne peuvent traiter que les en-têtes de requête, et non les corps de requête ni aucune partie des réponses.
Fonctionnement des extensions de route
Les extensions de route s'exécutent en premier dans le chemin de traitement des requêtes lorsque l'équilibreur de charge reçoit les en-têtes de requête et avant d'évaluer le mappage d'URL.
Lorsqu'un équilibreur de charge appelle une extension de route pour une requête, il effectue les opérations suivantes :
- Sélectionne le service de backend en évaluant le mappage d'URL
- Applique les règles Cloud Armor au service de backend sélectionné.
- Applique les règles IAP au service de backend sélectionné
- Effectue l'injection de pannes
- Effectue des transformations d'en-tête de requête et résout les variables d'en-tête de requête personnalisées
- Appelle les extensions de trafic, si elles existent dans le chemin de traitement du service de backend sélectionné
- Effectue des réécritures d'URL
- Effectue des redirections ou un routage vers le service de backend sélectionné, et applique les délais d'attente et les règles de réessai dans le mappage d'URL et les autres paramètres d'équilibrage de charge pour le service de backend.
Fonctionnement des extensions de trafic
Les équilibreurs de charge exécutent les extensions de trafic en dernier dans le chemin de traitement des requêtes et en premier dans le chemin de traitement des réponses.
Ces extensions vous permettent de modifier les en-têtes et les charges utiles des requêtes et des réponses sans affecter le choix du service de backend. Vous pouvez également utiliser des extensions de trafic pour la journalisation personnalisée en spécifiant les informations que vous souhaitez consigner, le format et le fournisseur externe.
Avant qu'un équilibreur de charge appelle une extension de trafic sur le chemin de requête pour une requête, il effectue les opérations suivantes :
- Effectue l'injection de pannes
- Sélectionne un service de backend pour la requête
- Applique les règles Cloud Armor au service de backend sélectionné.
- Applique les règles IAP au service de backend sélectionné
- Applique les stratégies de mise en cache Cloud CDN au service de backend sélectionné dans le cas des équilibreurs de charge d'application externes globaux.
Lorsqu'un équilibreur de charge appelle une extension de trafic sur le chemin de requête pour une requête, il effectue les opérations suivantes :
- Effectue des réécritures d'URL
- Effectue la manipulation des en-têtes en fonction du mappage d'URL et ajoute des variables d'en-tête de requête personnalisées
- Effectue des redirections ou un routage vers le service de backend sélectionné tout en appliquant des délais d'attente et des règles de réessai dans le mappage d'URL et les paramètres d'équilibrage de charge pour le service de backend
- Effectue la mise en miroir des requêtes
Lorsqu'un équilibreur de charge appelle une extension de trafic sur le chemin de réponse d'une requête, il effectue les opérations suivantes :
- Effectue des transformations d'en-tête de réponse et résout les variables d'en-tête de réponse personnalisées
- Effectue la journalisation à l'aide de Cloud Logging
- Effectue la mise en cache Cloud CDN dans le cas des équilibreurs de charge d'application externes globaux
Limites concernant les extensions
- Une règle de transfert ne peut comporter qu'une seule ressource
LbEdgeExtension, une seule ressourceLbTrafficExtensionet une seule ressourceLbRouteExtension. - Pour les callouts, le service de backend de callout doit se trouver dans le même projet que la règle de transfert.
- Le référencement interprojet entre les extensions et les règles de transfert n'est pas accepté.
Étapes suivantes
- Présentation des plug-ins
- Présentation des encadrés Cloud Load Balancing
- Intégration aux services Google