- Ressource: GrpcRoute
- RouteRule
- RouteMatch
- MethodMatch
- Typ
- HeaderMatch
- Typ
- RouteAction
- Ziel
- FaultInjectionPolicy
- Verzögerung
- Abort
- RetryPolicy
- StatefulSessionAffinityPolicy
- Methoden
Ressource: GrpcRoute
GrpcRoute ist die Ressource, die festlegt, wie von einer Mesh- oder Gateway-Ressource weitergeleiteter gRPC-Traffic weitergeleitet wird.
JSON-Darstellung |
---|
{
"name": string,
"selfLink": string,
"createTime": string,
"updateTime": string,
"labels": {
string: string,
...
},
"description": string,
"hostnames": [
string
],
"meshes": [
string
],
"gateways": [
string
],
"rules": [
{
object ( |
Felder | |
---|---|
name |
Erforderlich. Name der GrpcRoute-Ressource. Er entspricht dem Muster |
selfLink |
Nur Ausgabe. Serverdefinierte URL dieser Ressource |
createTime |
Nur Ausgabe. Der Zeitstempel, der angibt, wann die Ressource erstellt wurde. Ein Zeitstempel im Format RFC3339 UTC "Zulu" mit einer Auflösung im Nanosekundenbereich und bis zu neun Nachkommastellen. Beispiele: |
updateTime |
Nur Ausgabe. Der Zeitstempel, der angibt, wann die Ressource aktualisiert wurde. Ein Zeitstempel im Format RFC3339 UTC "Zulu" mit einer Auflösung im Nanosekundenbereich und bis zu neun Nachkommastellen. Beispiele: |
labels |
Optional. Satz von Label-Tags, die der GrpcRoute-Ressource zugeordnet sind. Ein Objekt, das eine Liste von |
description |
Optional. Eine Freitextbeschreibung der Ressource. Maximale Länge: 1.024 Zeichen. |
hostnames[] |
Erforderlich. Dienst-Hostnamen mit einem optionalen Port, für den diese Route Traffic beschreibt. Format: Der Hostname ist der voll qualifizierte Domainname eines Netzwerkhosts. Dies entspricht der RFC 1123-Definition eines Hostnamens mit zwei wichtigen Ausnahmen: – IP-Adressen sind nicht zulässig. – Ein Hostname kann mit einem Platzhalterlabel ( Hostname kann „genau“ sein Dabei handelt es sich um einen Domainnamen ohne den abschließenden Punkt eines Netzwerkhosts (z. B. Gemäß RFC1035 und RFC1123 muss ein Label aus alphanumerischen Zeichen in Kleinbuchstaben oder „-“ bestehen und mit einem alphanumerischen Zeichen beginnen und enden. Andere Satzzeichen sind nicht zulässig. Die mit einem Mesh oder Gateway verknüpften Routen müssen eindeutige Hostnamen haben. Wenn Sie versuchen, mehrere Routen mit in Konflikt stehenden Hostnamen anzuhängen, wird die Konfiguration abgelehnt. Es ist beispielsweise zulässig, dass Routen für die Hostnamen Wenn ein Port angegeben ist, müssen gRPC-Clients den Kanal-URI mit dem Port verwenden, der dieser Regel entspricht (z. B. „xds:///service:123“). Andernfalls müssen sie den URI ohne Port angeben (d. h. „xds:///service“). |
meshes[] |
Optional. Meshes definiert eine Liste von Mesh-Netzwerken, an die diese Grpc-Route angehängt ist, als eine der Routingregeln zum Weiterleiten der vom Mesh-Netzwerk bereitgestellten Anfragen. Jeder Verweis auf das Mesh-Netzwerk sollte dem Muster |
gateways[] |
Optional. Mit Gateways wird eine Liste von Gateways definiert, an die diese Grpc-Route angehängt ist, und zwar als eine der Routingregeln zur Weiterleitung der vom Gateway bereitgestellten Anfragen. Jede Gateway-Referenz muss dem Muster entsprechen: |
rules[] |
Erforderlich. Eine Liste detaillierter Regeln, die festlegen, wie Traffic weitergeleitet wird. Innerhalb einer einzelnen GrpcRoute wird die GrpcRoute.RouteAction ausgeführt, die der ersten übereinstimmenden GrpcRoute.RouteRule zugeordnet ist. Es muss mindestens eine Regel angegeben werden. |
RouteRule
Beschreibt, wie Traffic weitergeleitet wird.
JSON-Darstellung |
---|
{ "matches": [ { object ( |
Felder | |
---|---|
matches[] |
Optional. Stimmt mit definierten Bedingungen überein, die zum Abgleich der Regel mit eingehenden gRPC-Anfragen verwendet werden. Jede Übereinstimmung ist unabhängig, d.h. diese Regel wird angewendet, wenn EINE der Übereinstimmungen erfüllt ist. Wenn kein Übereinstimmungsfeld angegeben ist, wird diese Regel bedingungslos auf den Traffic angewendet. |
action |
Erforderlich. Eine detaillierte Regel, die definiert, wie Traffic weitergeleitet wird. Dies ist ein Pflichtfeld. |
RouteMatch
Kriterien für den Abgleich von Traffic. Eine RouteMatch-Übereinstimmung wird festgestellt, wenn alle angegebenen Felder übereinstimmen.
JSON-Darstellung |
---|
{ "headers": [ { object ( |
Felder | |
---|---|
headers[] |
Optional. Gibt eine Sammlung von Headern an, die abgeglichen werden sollen. |
method |
Optional. Eine gRPC-Methode, mit der abgeglichen werden soll. Wenn dieses Feld leer ist oder weggelassen wird, werden alle Methoden gefunden. |
MethodMatch
Gibt einen Abgleich mit einer Methode an.
JSON-Darstellung |
---|
{
"type": enum ( |
Felder | |
---|---|
type |
Optional. Gibt an, wie nach dem Namen abgeglichen werden soll. Wenn keine Angabe erfolgt, wird der Standardwert „EXAKT“ verwendet. |
grpcService |
Erforderlich. Name des Dienstes für den Abgleich. Wenn nicht angegeben, werden alle Dienste abgeglichen. |
grpcMethod |
Erforderlich. Name der Methode, mit der abgeglichen werden soll. Wenn nicht angegeben, wird mit allen Methoden abgeglichen. |
caseSensitive |
Optional. Gibt an, dass bei Übereinstimmungen zwischen Groß- und Kleinschreibung unterschieden wird. Der Standardwert ist „wahr“. „caseSensitive“ darf nicht mit dem Typ „REGEXP_EXPRESSION“ verwendet werden. |
Typ
Die Art der Übereinstimmung.
Enums | |
---|---|
TYPE_UNSPECIFIED |
Nicht angegeben. |
EXACT |
Stimmt nur mit dem angegebenen Namen überein. |
REGULAR_EXPRESSION |
Interpretiert „grpcMethod“ und „grpcService“ als reguläre Ausdrücke. RE2-Syntax wird unterstützt. |
HeaderMatch
Übereinstimmung mit einer Sammlung von Headern.
JSON-Darstellung |
---|
{
"type": enum ( |
Felder | |
---|---|
type |
Optional. Gibt an, wie der Abgleich mit dem Wert des Headers erfolgen soll. Wenn keine Angabe erfolgt, wird der Standardwert EXACT verwendet. |
key |
Erforderlich. Der Schlüssel der Überschrift. |
value |
Erforderlich. Der Wert des Headers. |
Typ
Die Art der Übereinstimmung.
Enums | |
---|---|
TYPE_UNSPECIFIED |
Nicht angegeben. |
EXACT |
Stimmt nur mit dem angegebenen Wert überein. |
REGULAR_EXPRESSION |
Übereinstimmt mit Pfaden, die dem durch den Wert angegebenen Präfix entsprechen. Die RE2-Syntax wird unterstützt. |
RouteAction
Hier wird festgelegt, wie übereinstimmender Traffic weitergeleitet wird.
JSON-Darstellung |
---|
{ "destinations": [ { object ( |
Felder | |
---|---|
destinations[] |
Optional. Die Zieldienste, an die der Traffic weitergeleitet werden soll. Wenn mehrere Ziele angegeben sind, wird der Traffic gemäß dem Gewichtsfeld dieser Ziele zwischen den Back-End-Diensten aufgeteilt. |
faultInjectionPolicy |
Optional. Die Spezifikation für die Fehlerinjektion, die in den Traffic eingeführt wird, um die Ausfallsicherheit von Clients bei Zieldienstausfällen zu testen. Im Rahmen der Fehlerinjektion können bei einem Prozentsatz der Anfragen Verzögerungen auftreten, wenn Clients Anfragen an ein Ziel senden, bevor diese Anfragen an den Zieldienst gesendet werden. Ebenso können Anfragen von Clients zu einem Prozentsatz abgebrochen werden. Zeitüberschreitung und Wiederholungsrichtlinie werden von Clients ignoriert, die mit einer FehlerinjectionPolicy konfiguriert sind. |
timeout |
Optional. Gibt das Zeitlimit für die ausgewählte Route an. Das Zeitlimit wird vom Zeitpunkt der vollständigen Verarbeitung der Anfrage (d. h. Ende des Streams) bis zur vollständigen Verarbeitung der Antwort berechnet. Das Zeitlimit umfasst alle Wiederholungen. Die Dauer in Sekunden mit bis zu neun Nachkommastellen und am Ende mit " |
retryPolicy |
Optional. Gibt die Wiederholungsrichtlinie an, die dieser Route zugeordnet ist. |
statefulSessionAffinity |
Optional. Gibt die cookiebasierte zustandsorientierte Sitzungsaffinität an. |
idleTimeout |
Optional. Gibt das Zeitlimit für die Inaktivität für die ausgewählte Route an. Das Zeitlimit bei Inaktivität ist als Zeitraum definiert, in dem keine Byte über die Upstream- oder Downstream-Verbindung gesendet oder empfangen werden. Wenn nicht festgelegt, beträgt die Standardzeitüberschreitung für Inaktivität 1 Stunde. Wenn der Wert auf „0 Sekunden“ gesetzt ist, wird die Zeitüberschreitung deaktiviert. Die Dauer in Sekunden mit bis zu neun Nachkommastellen und am Ende mit " |
Ziel
Das Ziel, an das der Traffic geleitet wird.
JSON-Darstellung |
---|
{ // Union field |
Felder | |
---|---|
Union-Feld destination_type . Gibt die Art des Ziels an, an das der Traffic weitergeleitet wird. Für destination_type ist nur einer der folgenden Werte zulässig: |
|
serviceName |
Erforderlich. Die URL eines Zieldienstes, an den der Traffic weitergeleitet werden soll. Muss sich entweder auf einen BackendService oder ServiceDirectoryService beziehen. |
weight |
Optional. Gibt den Anteil der Anfragen an, die an das Back-End weitergeleitet werden, auf das im Feld „serviceName“ verwiesen wird. Der Wert wird wie folgt berechnet: – Gewichtung/Summe(Gewichtungen in dieser Zielliste). Bei Werten ungleich Null kann je nach der von einer Implementierung unterstützten Genauigkeit ein gewisses Epsilon zu dem hier definierten Anteil vorliegen. Wenn nur ein Dienstname angegeben ist und dieser eine Gewichtung größer als 0 hat, werden 100% des Traffics an dieses Back-End weitergeleitet. Wenn für einen Dienstnamen Gewichtungen angegeben werden, müssen sie für alle angegeben werden. Wenn für alle Dienste keine Gewichtungen angegeben sind, wird der Traffic gleichmäßig auf alle verteilt. |
FaultInjectionPolicy
Die Spezifikation für die Fehlerinjektion, die in den Traffic eingeführt wird, um die Ausfallsicherheit von Clients bei Zieldienstausfällen zu testen. Im Rahmen der Fehlerinjektion können bei einem Prozentsatz der Anfragen Verzögerungen auftreten, wenn Clients Anfragen an ein Ziel senden, bevor diese Anfragen an den Zieldienst gesendet werden. Ebenso können Anfragen von Clients für einen bestimmten Prozentsatz der Anfragen abgebrochen werden.
JSON-Darstellung |
---|
{ "delay": { object ( |
Felder | |
---|---|
delay |
Die Spezifikation für die Verzögerung von Clientanfragen. |
abort |
Die Spezifikation zum Abbrechen von Clientanfragen. |
Verzögerung
Gibt an, wie Clientanfragen im Rahmen der Fehlerinjektion verzögert werden, bevor sie an ein Ziel gesendet werden.
JSON-Darstellung |
---|
{ "fixedDelay": string, "percentage": integer } |
Felder | |
---|---|
fixedDelay |
Geben Sie eine feste Verzögerung vor der Weiterleitung der Anfrage an. Die Dauer in Sekunden mit bis zu neun Nachkommastellen und am Ende mit " |
percentage |
Der Prozentsatz des Traffics, für den eine Verzögerung eingeschleust wird. Der Wert muss zwischen [0, 100] liegen. |
Abbrechen
Spezifikation, wie Clientanfragen im Rahmen der Fehlerinjektion abgebrochen werden, bevor sie an ein Ziel gesendet werden.
JSON-Darstellung |
---|
{ "httpStatus": integer, "percentage": integer } |
Felder | |
---|---|
httpStatus |
Der HTTP-Statuscode, mit dem die Anfrage abgebrochen wurde. Der Wert muss zwischen 200 und 599 liegen. |
percentage |
Der Prozentsatz des Traffics, der abgebrochen wird. Der Wert muss zwischen [0, 100] liegen |
RetryPolicy
Die Spezifikationen für Wiederholungsversuche.
JSON-Darstellung |
---|
{ "retryConditions": [ string ], "numRetries": integer } |
Felder | |
---|---|
retryConditions[] |
|
numRetries |
Gibt die zulässige Anzahl von Wiederholungsversuchen an. Diese Zahl muss > 0. Wenn keine Angabe erfolgt, wird standardmäßig „1“ verwendet. |
StatefulSessionAffinityPolicy
Die Spezifikation für die cookiebasierte zustandsorientierte Sitzungsaffinität, bei der das Datumsschema ein „Sitzungscookie“ mit dem Namen „GSSA“ bereitstellt, das einen bestimmten Zielhost codiert. Jede Anfrage, die dieses Cookie enthält, wird an diesen Host weitergeleitet, solange der Zielhost aktiv und fehlerfrei ist.
Die proxylose gRPC-Mesh-Bibliothek oder der Sidecar-Proxy verwaltet das Sitzungscookie, aber der Clientanwendungscode ist dafür verantwortlich, das Cookie von jedem RPC in der Sitzung zum nächsten zu kopieren.
JSON-Darstellung |
---|
{ "cookieTtl": string } |
Felder | |
---|---|
cookieTtl |
Erforderlich. Der Cookie-TTL-Wert für den Set-Cookie-Header, der von der Datenebene generiert wurde. Die Lebensdauer des Cookies kann auf einen Wert zwischen 1 und 86.400 Sekunden (24 Stunden) festgelegt werden. Die Dauer in Sekunden mit bis zu neun Nachkommastellen und am Ende mit " |
Methoden |
|
---|---|
|
Erstellt eine neue GrpcRoute in einem bestimmten Projekt und an einem bestimmten Standort. |
|
Löscht eine einzelne Grpc-Route. |
|
Ruft Details einer einzelnen GRPC-Route ab. |
|
Listet GRPC-Routen in einem bestimmten Projekt und an einem bestimmten Speicherort auf. |
|
Aktualisiert die Parameter einer einzelnen Grpc-Route. |