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. 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 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 de 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) 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

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 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.

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

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. Spécifie 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 en cas d'échec ou d'expiration de l'appel vers l'extension.

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'extension 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. 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). S'il est omis, 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 à l'arrivée des bandes-annonces de réponse HTTP.