ExtensionChain

Wrapper de chaîne d'extension unique qui contient les conditions de correspondance et les extensions à exécuter.

Représentation JSON
{
  "name": string,
  "matchCondition": {
    object (MatchCondition)
  },
  "extensions": [
    {
      object (Extension)
    }
  ]
}
Champs
name

string

Obligatoire. Nom de cette chaîne d'extension. Le nom est consigné dans les journaux des requêtes HTTP. Le nom doit être conforme à la norme RFC-1034, ne peut contenir que des lettres minuscules, des chiffres et des traits d'union, et peut comporter jusqu'à 63 caractères. De plus, le premier caractère doit être une lettre, et le dernier une lettre ou un chiffre.

matchCondition

object (MatchCondition)

Obligatoire. Conditions sous lesquelles cette chaîne est appelée pour une requête.

extensions[]

object (Extension)

Obligatoire. Ensemble d'extensions à exécuter pour la requête correspondante. Veuillez indiquer au moins une extension. Vous pouvez définir jusqu'à trois extensions pour chaque chaîne d'extension pour la ressource LbTrafficExtension. LbRouteExtension chaîne est limitée à 1 extension par chaîne d'extension.

MatchCondition

Conditions dans lesquelles cette chaîne est appelée pour une requête.

Représentation JSON
{
  "celExpression": string
}
Champs
celExpression

string

Obligatoire. Expression CEL (Common Expression Language) permettant de mettre en correspondance les requêtes pour lesquelles la chaîne d'extension est exécutée.

Pour en savoir plus, consultez la documentation de référence du langage de correspondance CEL.

Extension

Extension unique dans la chaîne à exécuter pour la requête correspondante.

Représentation JSON
{
  "name": string,
  "authority": string,
  "service": string,
  "supportedEvents": [
    enum (EventType)
  ],
  "timeout": string,
  "failOpen": boolean,
  "forwardHeaders": [
    string
  ]
}
Champs
name

string

Obligatoire. Nom de cette extension. Le nom est consigné dans les journaux des requêtes HTTP. Le nom doit être conforme à la norme RFC-1034. Il ne peut contenir que des lettres minuscules, des chiffres et des traits d'union. Il peut comporter jusqu'à 63 caractères. De plus, le premier caractère doit être une lettre, et le dernier doit être une lettre ou un chiffre.

authority

string

Facultatif. En-tête :authority de la requête gRPC envoyée par Envoy au service d'extension. Obligatoire pour les extensions d'accroche.

service

string

Obligatoire. Référence au service qui exécute l'extension.

Actuellement, seules les extensions d'accroche sont acceptées ici.

Pour configurer une extension d'accroche, service doit être une référence complète à un service de backend au format https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/backendServices/{backendService} ou https://www.googleapis.com/compute/v1/projects/{project}/global/backendServices/{backendService}.

supportedEvents[]

enum (EventType)

Facultatif. Ensemble d'événements lors du traitement des requêtes ou des réponses pour lesquels cette extension est appelée. Ce champ est obligatoire pour la ressource LbTrafficExtension. Il ne doit pas être défini pour la ressource LbRouteExtension.

timeout

string (Duration format)

Facultatif. Indique le délai avant expiration de chaque message du flux. Le délai avant expiration doit être compris entre 10 et 1 000 millisecondes. Obligatoire pour les extensions d'accroche.

Durée en secondes avec neuf chiffres au maximum après la virgule et se terminant par "s". Exemple : "3.5s"

failOpen

boolean

Facultatif. Détermine le comportement du proxy si l'appel de l'extension échoue ou expire.

Si défini sur TRUE, le traitement des requêtes ou des réponses se poursuit sans erreur. Toutes les extensions ultérieures de la chaîne d'extensions sont également exécutées. Lorsque ce paramètre est défini sur FALSE ou que le paramètre par défaut FALSE est utilisé, l'une des situations suivantes se produit:

  • Si les en-têtes de réponse n'ont pas été livrés au client en aval, une erreur générique 500 est renvoyée au client. Il est possible de personnaliser le message d'erreur en configurant une réponse d'erreur personnalisée dans l'équilibreur de charge.

  • Si des en-têtes de réponse ont été fournis, le flux HTTP vers le client en aval est réinitialisé.

forwardHeaders[]

string

Facultatif. Liste des en-têtes HTTP à transférer à l'extension (à partir du client ou du backend). Si cette option est omise, tous les en-têtes sont envoyés. Chaque élément est une chaîne indiquant le nom de l'en-tête.

EventType

Partie de la requête ou de la réponse pour laquelle l'extension est appelée.

Enums
EVENT_TYPE_UNSPECIFIED Valeur non spécifiée. Ne l'utilisez pas.
REQUEST_HEADERS Si elle est incluse dans supportedEvents, l'extension est appelée lorsque les en-têtes de requête HTTP arrivent.
REQUEST_BODY Si elle est incluse dans supportedEvents, l'extension est appelée lorsque le corps de la requête HTTP arrive.
RESPONSE_HEADERS Si elle est incluse dans supportedEvents, l'extension est appelée lorsque les en-têtes de réponse HTTP arrivent.
RESPONSE_BODY Si elle est incluse dans supportedEvents, l'extension est appelée lorsque le corps de la réponse HTTP arrive.
REQUEST_TRAILERS Si elle est incluse dans supportedEvents, l'extension est appelée lorsque les bandes-annonces de la requête HTTP arrivent.
RESPONSE_TRAILERS Si elle est incluse dans supportedEvents, l'extension est appelée lorsque les trailers de réponse HTTP arrivent.