ExtensionChain

Ein einzelner Erweiterungsketten-Wrapper, der die Abgleichbedingungen und die auszuführenden Erweiterungen enthält.

JSON-Darstellung
{
  "name": string,
  "matchCondition": {
    object (MatchCondition)
  },
  "extensions": [
    {
      object (Extension)
    }
  ]
}
Felder
name

string

Erforderlich. Der Name dieser Erweiterungskette. Der Name wird als Teil der HTTP-Anfrageprotokolle protokolliert. Der Name muss RFC-1034 entsprechen, darf nur Kleinbuchstaben, Ziffern und Bindestriche enthalten und darf maximal 63 Zeichen lang sein. Außerdem muss das erste Zeichen ein Buchstabe und das letzte ein Buchstabe oder eine Ziffer sein.

matchCondition

object (MatchCondition)

Erforderlich. Bedingungen, unter denen diese Kette für eine Anfrage aufgerufen wird.

extensions[]

object (Extension)

Erforderlich. Eine Reihe von Erweiterungen, die für die übereinstimmende Anfrage ausgeführt werden sollen. Mindestens eine Erweiterung ist erforderlich. Für jede Erweiterungskette für die LbTrafficExtension-Ressource können bis zu drei Erweiterungen definiert werden. LbRouteExtension-Ketten sind auf eine Erweiterung pro Kette beschränkt.

MatchCondition

Bedingungen, unter denen diese Kette für eine Anfrage aufgerufen wird.

JSON-Darstellung
{
  "celExpression": string
}
Felder
celExpression

string

Erforderlich. Ein CEL-Ausdruck (Common Expression Language), der zum Abgleichen von Anfragen verwendet wird, für die die Erweiterungskette ausgeführt wird.

Weitere Informationen finden Sie in der Referenz zur CEL-Abgleichssprache.

Erweiterung

Eine einzelne Erweiterung in der Kette, die für die übereinstimmende Anfrage ausgeführt werden soll.

JSON-Darstellung
{
  "name": string,
  "authority": string,
  "service": string,
  "supportedEvents": [
    enum (EventType)
  ],
  "timeout": string,
  "failOpen": boolean,
  "forwardHeaders": [
    string
  ]
}
Felder
name

string

Erforderlich. Der Name dieser Erweiterung. Der Name wird als Teil der HTTP-Anfrageprotokolle protokolliert. Der Name muss RFC-1034 entsprechen, darf nur Kleinbuchstaben, Ziffern und Bindestriche enthalten und darf maximal 63 Zeichen lang sein. Außerdem muss das erste Zeichen ein Buchstabe und das letzte ein Buchstabe oder eine Ziffer sein.

authority

string

Optional. Der :authority-Header in der gRPC-Anfrage, die von Envoy an den Erweiterungsdienst gesendet wird. Erforderlich für Erweiterungen mit Zusatzinformationen.

service

string

Erforderlich. Der Verweis auf den Dienst, der die Erweiterung ausführt.

Derzeit werden hier nur Zusatzinformationen unterstützt.

Wenn Sie eine Zusatzfunktion für Zusatzinformationen konfigurieren möchten, muss service ein vollständig qualifizierter Verweis auf einen Backend-Dienst im Format https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/backendServices/{backendService} oder https://www.googleapis.com/compute/v1/projects/{project}/global/backendServices/{backendService} sein.

supportedEvents[]

enum (EventType)

Optional. Eine Reihe von Ereignissen während der Verarbeitung von Anfragen oder Antworten, für die diese Erweiterung aufgerufen wird. Dieses Feld ist für die LbTrafficExtension-Ressource erforderlich. Sie darf nicht für die LbRouteExtension-Ressource festgelegt sein.

timeout

string (Duration format)

Optional. Gibt das Zeitlimit für jede einzelne Nachricht im Stream an. Das Zeitlimit muss zwischen 10 und 1.000 Millisekunden liegen. Erforderlich für Erweiterungen mit Zusatzinformationen.

Die Dauer in Sekunden mit bis zu neun Nachkommastellen und am Ende mit "s". Beispiel: "3.5s".

failOpen

boolean

Optional. Bestimmt, wie sich der Proxy verhält, wenn der Aufruf der Erweiterung fehlschlägt oder ein Zeitlimit erreicht wird.

Wenn TRUE festgelegt ist, wird die Anfrage- oder Antwortverarbeitung ohne Fehler fortgesetzt. Alle nachfolgenden Erweiterungen in der Erweiterungskette werden ebenfalls ausgeführt. Wenn „FALSE“ festgelegt ist oder die Standardeinstellung „FALSE“ verwendet wird, geschieht Folgendes:

  • Wenn Antwortheader nicht an den Downstream-Client gesendet wurden, wird dem Client ein generischer 500-Fehler zurückgegeben. Die Fehlerantwort kann angepasst werden, indem Sie eine benutzerdefinierte Fehlerantwort im Load Balancer konfigurieren.

  • Wenn Antwortheader gesendet wurden, wird der HTTP-Stream an den Downstream-Client zurückgesetzt.

forwardHeaders[]

string

Optional. Liste der HTTP-Header, die an die Erweiterung weitergeleitet werden sollen (vom Client oder Backend). Wenn Sie das Flag weglassen, werden alle Header gesendet. Jedes Element ist ein String, der den Headernamen angibt.

EventType

Der Teil der Anfrage oder Antwort, für den die Erweiterung aufgerufen wird.

Enums
EVENT_TYPE_UNSPECIFIED Nicht angegebener Wert. Nicht verwenden.
REQUEST_HEADERS Wenn sie in supportedEvents enthalten ist, wird die Erweiterung aufgerufen, wenn die HTTP-Anfrageheader eintreffen.
REQUEST_BODY Wenn sie in supportedEvents enthalten ist, wird die Erweiterung aufgerufen, wenn der HTTP-Anfragetext eingeht.
RESPONSE_HEADERS Wenn sie in supportedEvents enthalten ist, wird die Erweiterung aufgerufen, wenn die HTTP-Antwortheader eintreffen.
RESPONSE_BODY Wenn sie in supportedEvents enthalten ist, wird die Erweiterung aufgerufen, wenn der HTTP-Antworttext eingeht.
REQUEST_TRAILERS Wenn sie in supportedEvents enthalten ist, wird die Erweiterung aufgerufen, wenn die HTTP-Anfrage-Trailer eintreffen.
RESPONSE_TRAILERS Wenn sie in supportedEvents enthalten ist, wird die Erweiterung aufgerufen, wenn die HTTP-Antwort-Trailer eintreffen.