ExtensionChain

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

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

string

Obligatoire. Le 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 doit comporter que des lettres minuscules, des chiffres et des traits d'union, et ne doit pas dépasser 63 caractères. De plus, le premier caractère doit être une lettre et le dernier doit être une lettre ou un chiffre.

matchCondition

object (MatchCondition)

Obligatoire. Conditions dans 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. Indiquez au moins une extension Jusqu'à trois extensions peuvent être définies pour chaque chaîne d'extension pour la ressource LbTrafficExtension. Les chaînes LbRouteExtension sont limitées à une extension par chaîne.

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) utilisée pour faire correspondre 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 sur le langage de correspondance CEL.

Extension

Une seule extension de 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. Le nom de l'extension. Le nom est consigné dans les journaux des requêtes HTTP. Le nom doit être conforme à la norme RFC-1034, ne doit comporter que des lettres minuscules, des chiffres et des traits d'union, et ne doit pas dépasser 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. L'en-tête :authority dans 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.

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 pour chaque message individuel 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 à l'extension échoue ou expire.

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

  • Si les en-têtes de réponse n'ont pas été transmis au client en aval, une erreur 500 générique lui est renvoyée. Vous pouvez configurer 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 (depuis le client ou le 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 pas utiliser.
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 codes de fin de la requête HTTP arrivent.
RESPONSE_TRAILERS Si elle est incluse dans supportedEvents, l'extension est appelée lorsque les codes de fin de la réponse HTTP arrivent.