ExtensionChain

Un seul wrapper de chaîne d'extension 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. 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, être limité aux lettres minuscules, aux chiffres et aux traits d'union, et ne pas dépasser 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. Vous devez ajouter au moins une extension. Vous pouvez définir jusqu'à trois extensions pour chaque chaîne d'extension de la ressource LbTrafficExtension. Les chaînes LbRouteExtension sont limitées à une extension par chaîne d'extension.

MatchCondition

Conditions sous 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 du 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. Nom de cette extension. Le nom est consigné dans les journaux des requêtes HTTP. Le nom doit être conforme à la norme RFC-1034, être limité aux lettres minuscules, aux chiffres et aux traits d'union, et ne pas dépasser 63 caractères. De plus, le premier caractère doit être une lettre, et le dernier une lettre ou un chiffre.

authority

string

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

service

string

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

Pour le moment, seules les extensions de callout sont acceptées.

Pour configurer une extension de callout, 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.

Lorsque la valeur est TRUE, le traitement de la requête ou de la réponse se poursuit sans erreur. Toutes les extensions ultérieures de la chaîne d'extensions sont également exécutées. Lorsque la valeur est définie 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é transmis au client en aval, une erreur générique 500 est renvoyée au client. Vous pouvez personnaliser la réponse 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é envoyés, 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.