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-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 bis zu 3 Erweiterungen für LbTrafficExtension Ressource definiert werden. LbRouteExtension Ketten sind auf eine 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 Common Expression Language-Ausdruck (CEL), mit dem Anfragen abgeglichen werden, für die die Erweiterungskette ausgeführt wird.

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

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 in den HTTP-Anfrageprotokollen 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 Zeichen ein Buchstabe oder eine Ziffer sein.

authority

string

Optional. Den :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.

Zum Konfigurieren einer Erweiterung mit Zusatzinformationen muss service eine voll qualifizierte Referenz 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 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 oder die Standardeinstellung FALSE verwendet wird, geschieht Folgendes:

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

  • 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 Wert nicht angegeben. 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 beim Eintreffen der HTTP-Antwortheader aufgerufen.
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 der HTTP-Antworttrailer eintrifft.