ExtensionChain

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

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

string

Erforderlich. Der Name für diese Erweiterungskette. Der Name wird als Teil der HTTP-Anfragelogs protokolliert. Der Name muss RFC-1034-konform sein, 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 Zeichen 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 können für LbTrafficExtension Ressource bis zu drei Erweiterungen definiert werden. LbRouteExtension Ketten sind auf 1 Erweiterung pro Erweiterungskette 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 Abgleich von Anfragen verwendet wird, für die die Erweiterungskette ausgeführt wird.

Weitere Informationen finden Sie in der Sprachreferenz für CEL-Matcher.

Erweiterung

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

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

string

Erforderlich. Der Name für diese Erweiterung. Der Name wird als Teil der HTTP-Anfragelogs protokolliert. Der Name muss RFC-1034-konform sein, 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 Zeichen 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 Erweiterungen mit Zusatzinformationen unterstützt.

Zum Konfigurieren einer Erweiterung mit Zusatzinformationen muss service ein voll qualifizierter Verweis auf einen Back-End-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 Anfrage- oder Antwortverarbeitung, für die diese Erweiterung aufgerufen wird. Dieses Feld ist für die Ressource LbTrafficExtension erforderlich. Er darf für die Ressource LbRouteExtension nicht festgelegt werden.

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 das Zeitlimit überschritten 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 oder die Standardeinstellung von FALSE verwendet wird, geschieht Folgendes:

  • Wurden keine Antwortheader an den nachgelagerten Client gesendet, wird ein allgemeiner 500-Fehler an den Client zurückgegeben. Die Fehlerantwort kann durch Konfigurieren einer benutzerdefinierten Fehlerantwort im Load-Balancer angepasst werden.

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

forwardHeaders[]

string

Optional. Liste der HTTP-Header, die an die Erweiterung weitergeleitet werden sollen (vom Client oder Back-End). Wenn keine Angabe gemacht wird, 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 Ist die Erweiterung in supportedEvents enthalten, wird sie beim Eintreffen der HTTP-Anfrageheader aufgerufen.
REQUEST_BODY Ist die Erweiterung in supportedEvents enthalten, wird sie beim Eingang des HTTP-Anfragetexts aufgerufen.
RESPONSE_HEADERS Ist die Erweiterung in supportedEvents enthalten, wird sie beim Eintreffen der HTTP-Antwortheader aufgerufen.
RESPONSE_BODY Ist die Erweiterung in supportedEvents enthalten, wird sie beim Eintreffen des HTTP-Antworttexts aufgerufen.
REQUEST_TRAILERS Ist die Erweiterung in supportedEvents enthalten, wird sie aufgerufen, wenn der HTTP-Anfrage-Trailer eintrifft.
RESPONSE_TRAILERS Ist die Erweiterung in supportedEvents enthalten, wird sie beim Eingang des HTTP-Antwort-Trailers aufgerufen.