- Ressource: GrpcRoute
- RouteRule
- RouteMatch
- MethodMatch
- Type
- HeaderMatch
- Type
- RouteAction
- Destination
- FaultInjectionPolicy
- Delay
- Abort
- RetryPolicy
- StatefulSessionAffinityPolicy
- Methods
Ressource: GrpcRoute
GrpcRoute ist die Ressource, die definiert, wie gRPC-Traffic, der von einer Mesh- oder Gateway-Ressource weitergeleitet wird, geroutet 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. Sie 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. Eine Reihe von Label-Tags, die der GrpcRoute-Ressource zugeordnet sind. Ein Objekt, das eine Liste von |
description |
Optional. Eine Textbeschreibung der Ressource. Maximale Länge: 1.024 Zeichen. |
hostnames[] |
Erforderlich. Dienst-Hostnamen mit einem optionalen Port, für die diese Route den 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. – Einem Hostnamen kann ein Platzhalterlabel ( Der Hostname kann „präzise“ sein, d. h. ein Domainname 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. Beispiel: Es ist zulässig, Routen für die Hostnamen Wenn ein Port angegeben ist, müssen gRPC-Clients den Channel-URI mit dem Port verwenden, um dieser Regel zu entsprechen (z. B. „xds:///service:123“). Andernfalls müssen sie den URI ohne Port angeben (z. B. „xds:///service“). |
meshes[] |
Optional. „Meshes“ definiert eine Liste von Mesh-Netzwerken, an die diese GrpcRoute angehängt ist, als eine der Routingregeln zum Weiterleiten der Anfragen, die vom Mesh-Netzwerk verarbeitet werden. Jede Mesh-Netzwerk-Referenz muss dem Muster |
gateways[] |
Optional. „Gateways“ definiert eine Liste von Gateways, an die diese GrpcRoute angehängt ist, als eine der Routingregeln zum Weiterleiten der vom Gateway verarbeiteten Anfragen. Jede Gateway-Referenz muss dem Muster |
rules[] |
Erforderlich. Eine Liste mit detaillierten 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. Mit Übereinstimmungen werden Bedingungen definiert, die zum Abgleichen der Regel mit eingehenden gRPC-Anfragen verwendet werden. Jede Übereinstimmung ist unabhängig. Diese Regel ergibt also eine Übereinstimmung, wenn EINE der Übereinstimmungen erfüllt ist. Wenn kein „matches“-Feld angegeben ist, wird diese Regel immer auf Traffic angewendet. |
action |
Erforderlich. Eine detaillierte Regel, die festlegt, wie Traffic weitergeleitet wird. Dies ist ein Pflichtfeld. |
RouteMatch
Kriterien für den Abgleich von Traffic. Ein RouteMatch gilt als Übereinstimmung, 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 abgeglichen. |
MethodMatch
Gibt einen Abgleich mit einer Methode an.
| JSON-Darstellung |
|---|
{
"type": enum ( |
| Felder | |
|---|---|
type |
Optional. Gibt an, wie der Abgleich mit dem Namen durchgeführt wird. Wenn nicht angegeben, wird der Standardwert „EXACT“ verwendet. |
grpcService |
Erforderlich. Name des Dienstes, der abgeglichen werden soll. Wenn nicht angegeben, werden alle Dienste abgeglichen. |
grpcMethod |
Erforderlich. Name der Methode für den Abgleich. Wenn nicht angegeben, wird mit allen Methoden abgeglichen. |
caseSensitive |
Optional. Gibt an, dass beim Abgleich zwischen Groß- und Kleinschreibung unterschieden wird. Der Standardwert ist „true“. „caseSensitive“ darf nicht mit dem Typ „REGULAR_EXPRESSION“ verwendet werden. |
Type
Der Typ der Abgleichs.
| Enums | |
|---|---|
TYPE_UNSPECIFIED |
Nicht angegeben. |
EXACT |
Es wird nur der exakt angegebene Name abgeglichen. |
REGULAR_EXPRESSION |
Interpretiert „grpcMethod“ und „grpcService“ als reguläre Ausdrücke. Die RE2-Syntax wird unterstützt. |
HeaderMatch
Ein Abgleich mit einer Sammlung von Headern.
| JSON-Darstellung |
|---|
{
"type": enum ( |
| Felder | |
|---|---|
type |
Optional. Gibt an, wie der Abgleich mit dem Wert des Headers durchgeführt wird. Wenn nicht angegeben, wird der Standardwert „EXACT“ verwendet. |
key |
Erforderlich. Der Schlüssel des Headers. |
value |
Erforderlich. Der Wert des Headers. |
Type
Der Typ des Abgleichs.
| Enums | |
|---|---|
TYPE_UNSPECIFIED |
Nicht angegeben. |
EXACT |
Es wird nur der exakt angegebene Wert abgeglichen. |
REGULAR_EXPRESSION |
Gleicht Pfade ab, die dem durch den Wert angegebenen Präfix entsprechen. Die RE2-Syntax wird unterstützt. |
RouteAction
Gibt an, wie abgeglichener Traffic weitergeleitet werden soll.
| JSON-Darstellung |
|---|
{ "destinations": [ { object ( |
| Felder | |
|---|---|
destinations[] |
Optional. Die Zieldienste, an die Traffic weitergeleitet werden soll. Wenn mehrere Ziele angegeben sind, wird der Traffic entsprechend dem Feld „Gewichtung“ dieser Ziele auf die Backend-Dienste aufgeteilt. |
faultInjectionPolicy |
Optional. Die Spezifikation für die Fehlerinjektion, die in den Traffic eingeführt wird, um die Ausfallsicherheit von Clients bei einem Ausfall des Zieldienstes zu testen. Im Rahmen der Fehlerinjektion können Verzögerungen bei einem Prozentsatz von Anfragen eingeführt werden, bevor diese Anfragen an den Zieldienst gesendet werden. Ebenso können Anfragen von Clients für einen bestimmten Prozentsatz der Anfragen abgebrochen werden. „timeout“ und „retryPolicy“ werden von Clients ignoriert, die mit einer „faultInjectionPolicy“ 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 Wiederholungsversuche. Die Dauer in Sekunden mit bis zu neun Nachkommastellen und am Ende mit „ |
retryPolicy |
Optional. Gibt die mit dieser Route verknüpfte Richtlinie für Wiederholungsversuche an. |
statefulSessionAffinity |
Optional. Gibt die cookiebasierte zustandsorientierte Sitzungsaffinität an. |
idleTimeout |
Optional. Gibt das Zeitlimit für die ausgewählte Route an. Das Leerlauf-Zeitlimit wird als der Zeitraum definiert, in dem weder in der Upstream- noch in der Downstream-Verbindung Bytes gesendet oder empfangen werden. Wenn nicht festgelegt, beträgt das standardmäßige Leerlauf-Zeitlimit 1 Stunde. Wenn der Wert auf „0 s“ gesetzt ist, wird das Zeitlimit deaktiviert. Die Dauer in Sekunden mit bis zu neun Nachkommastellen und am Ende mit „ |
Destination
Das Ziel, an das der Traffic weitergeleitet 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 Traffic weitergeleitet werden soll. Muss sich entweder auf einen BackendService oder einen ServiceDirectoryService beziehen. |
weight |
Optional. Gibt den Anteil der Anfragen an, die an das Backend weitergeleitet werden, auf das im Feld „serviceName“ verwiesen wird. Der Wert wird so berechnet: – Gewichtung/Summe(Gewichtungen in dieser Zielliste). Bei Werten ungleich null kann es je nach Precision, die eine Implementierung unterstützt, zu Abweichungen vom hier definierten genauen Anteil kommen. Wenn nur ein serviceName angegeben ist und dieser eine Gewichtung von mehr als 0 hat, wird 100 % des Traffics an dieses Backend weitergeleitet. Wenn Gewichtungen für einen Dienstnamen 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 einem Ausfall des Zieldienstes zu testen. Im Rahmen der Fehlerinjektion können Verzögerungen bei einem Prozentsatz von Anfragen eingeführt werden, 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 Injektion von Verzögerungen in Clientanfragen. |
abort |
Die Spezifikation für das Abbrechen von Clientanfragen. |
Delay
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 an, bevor die Anfrage weitergeleitet wird. Die Dauer in Sekunden mit bis zu neun Nachkommastellen und am Ende mit „ |
percentage |
Der Prozentsatz des Traffics, bei dem eine Verzögerung eingefügt wird. Der Wert muss zwischen [0, 100] liegen |
Abort
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, der zum Abbrechen der Anfrage verwendet wurde. Der Wert muss zwischen 200 und einschließlich 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 an Wiederholungsversuchen an. Diese Zahl muss größer als 0 sein. Wenn nichts angegeben ist, wird standardmäßig 1 verwendet. |
StatefulSessionAffinityPolicy
Die Spezifikation für die cookiebasierte zustandsorientierte Sitzungsaffinität, bei der die Datenebene ein „Sitzungscookie“ mit dem Namen „GSSA“ bereitstellt, in dem ein bestimmter Zielhost codiert ist. Jede Anfrage, die dieses Cookie enthält, wird an diesen Host weitergeleitet, solange der Zielhost aktiv und fehlerfrei ist.
Die proxylose gRPC-Mesh-Netzwerk-Bibliothek oder der Sidecar-Proxy verwalten das Sitzungscookie. Der Clientanwendungscode ist jedoch dafür verantwortlich, das Cookie von jedem RPC in der Sitzung in den nächsten zu kopieren.
| JSON-Darstellung |
|---|
{ "cookieTtl": string } |
| Felder | |
|---|---|
cookieTtl |
Erforderlich. Der TTL-Wert des Cookies für den von der Datenebene generierten Set-Cookie-Header. 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 „ |
Methods |
|
|---|---|
|
Erstellt eine neue GrpcRoute in einem bestimmten Projekt und an einem bestimmten Standort. |
|
Löscht eine einzelne GrpcRoute. |
|
Ruft Details zu einer einzelnen GrpcRoute ab. |
|
Ruft die Zugriffssteuerungsrichtlinie für eine Ressource ab. |
|
Listet GrpcRoutes in einem bestimmten Projekt und an einem bestimmten Standort auf. |
|
Aktualisiert die Parameter einer einzelnen GrpcRoute. |
|
Legt die Zugriffssteuerungsrichtlinie für die angegebene Ressource fest. |
|
Gibt die Berechtigungen des Aufrufers für die angegebene Ressource zurück. |