REST Resource: projects.locations.httpRoutes

Ressource: HttpRoute

HttpRoute ist die Ressource, die festlegt, wie HTTP-Traffic durch eine Mesh- oder Gateway-Ressource weitergeleitet werden soll.

JSON-Darstellung
{
  "name": string,
  "selfLink": string,
  "description": string,
  "createTime": string,
  "updateTime": string,
  "hostnames": [
    string
  ],
  "meshes": [
    string
  ],
  "gateways": [
    string
  ],
  "labels": {
    string: string,
    ...
  },
  "rules": [
    {
      object (RouteRule)
    }
  ]
}
Felder
name

string

Erforderlich. Name der HttpRoute-Ressource. Sie entspricht dem Muster projects/*/locations/global/httpRoutes/http_route_name>.

description

string

Optional. Eine Freitextbeschreibung der Ressource. Maximale Länge: 1.024 Zeichen.

createTime

string (Timestamp format)

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: "2014-10-02T15:01:23Z" und "2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

Nur Ausgabe. Der Zeitstempel für den Zeitpunkt, zu dem die Ressource aktualisiert wurde.

Ein Zeitstempel im Format RFC3339 UTC "Zulu" mit einer Auflösung im Nanosekundenbereich und bis zu neun Nachkommastellen. Beispiele: "2014-10-02T15:01:23Z" und "2014-10-02T15:01:23.045123456Z".

hostnames[]

string

Erforderlich. Hostnamen definieren eine Reihe von Hosts, die mit dem HTTP-Host-Header übereinstimmen müssen, um eine HttpRoute als Alternative für die Verarbeitung der Anfrage auszuwählen. Der Hostname ist der voll qualifizierte Domainname eines Netzwerkhosts gemäß RFC 1123. Es gelten jedoch folgende Ausnahmen: – IP-Adressen sind nicht zulässig. – Einem Hostnamen kann ein Platzhalterlabel (*.) vorangestellt werden, das jedoch als erstes Label für sich selbst steht.

Der Hostname kann „präzise“ sein, d. h. ein Domainname ohne den abschließenden Punkt eines Netzwerkhosts (z. B. foo.example.com) oder „Platzhalter“. Dies ist ein Domainname mit einem einzelnen Platzhalterlabel (z. B. *.example.com).

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-Netzwerk oder Gateways verknüpften Routen müssen eindeutige Hostnamen haben. Wenn Sie versuchen, mehrere Routen mit in Konflikt stehenden Hostnamen anzuhängen, wird die Konfiguration abgelehnt.

Beispielsweise ist es zwar akzeptabel, dass Routen für die Hostnamen *.foo.bar.com und *.bar.com demselben Mesh-Netzwerk (oder Gateways im selben Bereich) zugeordnet sind, es ist jedoch nicht möglich, zwei Routen beide mit *.bar.com oder beiden mit bar.com zu verknüpfen.

meshes[]

string

Optional. Meshes definiert eine Liste von Mesh-Netzwerken, an die diese HttpRoute angehängt ist, als eine der Routingregeln zum Weiterleiten der vom Mesh-Netzwerk bereitgestellten Anfragen.

Jeder Mesh-Verweis sollte diesem Muster entsprechen: projects/*/locations/global/meshes/<mesh_name>

Das angehängte Mesh-Netzwerk muss vom Typ SIDECAR sein

gateways[]

string

Optional. Gateways definieren eine Liste von Gateways, an die diese HttpRoute angehängt ist. Dies geschieht als eine der Routingregeln zum Weiterleiten der vom Gateway bereitgestellten Anfragen.

Jeder Gatewayverweis sollte dem Muster entsprechen: projects/*/locations/global/gateways/<gateway_name>

labels

map (key: string, value: string)

Optional. Satz von Label-Tags, die der HttpRoute-Ressource zugeordnet sind.

Ein Objekt, das eine Liste von "key": value-Paaren enthält. Beispiel: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

rules[]

object (RouteRule)

Erforderlich. Regeln, die definieren, wie Traffic weitergeleitet und verarbeitet wird. Die Regeln werden sequenziell auf Grundlage des für die Regel angegebenen RouteMatches abgeglichen.

RouteRule

Gibt an, wie der Verkehr abgeglichen und weitergeleitet wird, wenn er abgeglichen wird.

JSON-Darstellung
{
  "matches": [
    {
      object (RouteMatch)
    }
  ],
  "action": {
    object (RouteAction)
  }
}
Felder
matches[]

object (RouteMatch)

Eine Liste von Übereinstimmungen definiert Bedingungen, die zum Abgleich der Regel mit eingehenden HTTP-Anfragen verwendet werden. Jede Übereinstimmung ist unabhängig, d.h., diese Regel wird angewendet, wenn EINE BELIEBTE der Übereinstimmungen erfüllt ist.

Wenn kein Übereinstimmungsfeld angegeben ist, gleicht diese Regel den Traffic unbedingt ab.

Wenn eine Standardregel konfiguriert werden soll, fügen Sie am Ende der Regelliste eine Regel ohne Übereinstimmungen hinzu.

action

object (RouteAction)

Die detaillierte Regel, die festlegt, wie übereinstimmender Traffic weitergeleitet wird.

RouteMatch

RouteMatch definiert Spezifikationen, die zum Abgleich von Anfragen verwendet werden. Wenn mehrere Übereinstimmungstypen festgelegt sind, kommt dieser RouteMatch als Übereinstimmung, wenn ALLE Übereinstimmungstypen übereinstimmen.

JSON-Darstellung
{
  "ignoreCase": boolean,
  "headers": [
    {
      object (HeaderMatch)
    }
  ],
  "queryParameters": [
    {
      object (QueryParameterMatch)
    }
  ],

  // Union field PathMatch can be only one of the following:
  "fullPathMatch": string,
  "prefixMatch": string,
  "regexMatch": string
  // End of list of possible types for union field PathMatch.
}
Felder
ignoreCase

boolean

Gibt an, ob bei „PräfixMatch“ und „fullPathMatch“ die Groß- und Kleinschreibung berücksichtigt wird. Der Standardwert ist „false“.

headers[]

object (HeaderMatch)

Gibt eine Liste von HTTP-Anfrageheadern für den Abgleich an. ALLE bereitgestellten Header müssen übereinstimmen.

queryParameters[]

object (QueryParameterMatch)

Gibt eine Liste von Suchparametern an, die abgeglichen werden sollen. ALLE Suchparameter müssen übereinstimmen.

Union-Feld PathMatch.

Für PathMatch ist nur einer der folgenden Werte zulässig:

fullPathMatch

string

Der Wert des HTTP-Anfragepfads muss genau mit diesem Wert übereinstimmen.

Es darf nur „fullPathMatch“, „präfixMatch“ oder „regexMatch“ verwendet werden.

prefixMatch

string

Der Pfadwert der HTTP-Anfrage muss mit dem angegebenen PräfixMatch beginnen. PräfixMatch muss mit einem Schrägstrich („/“) beginnen.

Es darf nur „fullPathMatch“, „präfixMatch“ oder „regexMatch“ verwendet werden.

regexMatch

string

Der Pfadwert der HTTP-Anfrage muss dem regulären Ausdruck entsprechen, der in „RegexMatch“ angegeben ist, nachdem alle Suchparameter und der mit der ursprünglichen URL bereitgestellte Anker entfernt wurden. Informationen zur Grammatik regulärer Ausdrücke finden Sie unter https://github.com/google/re2/wiki/Syntax.

Es darf nur „fullPathMatch“, „präfixMatch“ oder „regexMatch“ verwendet werden.

HeaderMatch

Gibt an, wie eine Routingregel anhand von HTTP-Anfrageheadern ausgewählt wird.

JSON-Darstellung
{
  "header": string,
  "invertMatch": boolean,

  // Union field MatchType can be only one of the following:
  "exactMatch": string,
  "regexMatch": string,
  "prefixMatch": string,
  "presentMatch": boolean,
  "suffixMatch": string,
  "rangeMatch": {
    object (IntegerRange)
  }
  // End of list of possible types for union field MatchType.
}
Felder
header

string

Der Name des HTTP-Headers, der abgeglichen werden soll.

invertMatch

boolean

Wenn angegeben, wird das Übereinstimmungsergebnis vor der Überprüfung invertiert. Der Standardwert ist auf „false“ gesetzt.

Union-Feld MatchType.

Für MatchType ist nur einer der folgenden Werte zulässig:

exactMatch

string

Der Wert des Headers sollte genau mit dem Inhalt von „exactMatch“ übereinstimmen.

regexMatch

string

Der Wert des Headers muss mit dem in „regexMatch“ angegebenen regulären Ausdruck übereinstimmen. Informationen zur Grammatik regulärer Ausdrücke finden Sie unter https://github.com/google/re2/wiki/Syntax.

prefixMatch

string

Der Wert des Headers muss mit dem Inhalt von PräfixMatch beginnen.

presentMatch

boolean

Ein Header mit „headerName“ muss vorhanden sein. Der Abgleich erfolgt unabhängig davon, ob der Header einen Wert hat oder nicht.

suffixMatch

string

Der Wert des Headers muss mit dem Inhalt vonsuffixMatch enden.

rangeMatch

object (IntegerRange)

Falls angegeben, gilt die Regel als Übereinstimmung, wenn der Wert des Anfrageheaders innerhalb des Bereichs liegt.

IntegerRange

Stellt einen ganzzahligen Wertebereich dar.

JSON-Darstellung
{
  "start": integer,
  "end": integer
}
Felder
start

integer

Beginn des Bereichs (einschließlich)

end

integer

Ende des Bereichs (ausschließlich)

QueryParameterMatch

Spezifikationen zum Abgleich eines Abfrageparameters in der Anfrage.

JSON-Darstellung
{
  "queryParameter": string,

  // Union field MatchType can be only one of the following:
  "exactMatch": string,
  "regexMatch": string,
  "presentMatch": boolean
  // End of list of possible types for union field MatchType.
}
Felder
queryParameter

string

Der Name des Suchparameters, der abgeglichen werden soll.

Union-Feld MatchType.

Für MatchType ist nur einer der folgenden Werte zulässig:

exactMatch

string

Der Wert des Suchparameters muss genau mit dem Inhalt von „exactMatch“ übereinstimmen.

Es darf nur „exactMatch“, „regexMatch“ oder „presentMatch“ festgelegt werden.

regexMatch

string

Der Wert des Suchparameters muss mit dem regulären Ausdruck übereinstimmen, der in „RegexMatch“ angegeben ist. Informationen zur Grammatik regulärer Ausdrücke finden Sie unter https://github.com/google/re2/wiki/Syntax.

Es darf nur „exactMatch“, „regexMatch“ oder „presentMatch“ festgelegt werden.

presentMatch

boolean

Gibt an, dass der QueryParameterMatcher übereinstimmt, wenn die Anfrage Suchparameter enthält, unabhängig davon, ob der Parameter einen Wert hat oder nicht.

Es darf nur „exactMatch“, „regexMatch“ oder „presentMatch“ festgelegt werden.

RouteAction

Die Spezifikationen für das Routing von Traffic und die Anwendung zugehöriger Richtlinien.

JSON-Darstellung
{
  "destinations": [
    {
      object (Destination)
    }
  ],
  "redirect": {
    object (Redirect)
  },
  "faultInjectionPolicy": {
    object (FaultInjectionPolicy)
  },
  "requestHeaderModifier": {
    object (HeaderModifier)
  },
  "responseHeaderModifier": {
    object (HeaderModifier)
  },
  "urlRewrite": {
    object (URLRewrite)
  },
  "timeout": string,
  "retryPolicy": {
    object (RetryPolicy)
  },
  "requestMirrorPolicy": {
    object (RequestMirrorPolicy)
  },
  "corsPolicy": {
    object (CorsPolicy)
  },
  "statefulSessionAffinity": {
    object (StatefulSessionAffinityPolicy)
  },
  "directResponse": {
    object (HttpDirectResponse)
  },
  "idleTimeout": string
}
Felder
destinations[]

object (Destination)

Das Ziel, an das Traffic weitergeleitet werden soll.

redirect

object (Redirect)

Wenn festgelegt, wird die Anfrage so weitergeleitet, wie in diesem Feld konfiguriert.

faultInjectionPolicy

object (FaultInjectionPolicy)

Die Spezifikation für die Fehlerinjektion, die in den Traffic eingeführt wurde, um die Ausfallsicherheit von Clients gegenüber Back-End-Dienstausfällen zu testen. Wenn Clients Anfragen an einen Back-End-Dienst senden, können im Rahmen der Fehlerinjektion Verzögerungen bei einem Prozentsatz der Anfragen entstehen, bevor diese Anfragen an den Back-End-Dienst gesendet werden. Ebenso können Anfragen von Clients für einen Prozentsatz der Anfragen abgebrochen werden.

Timeout und RepeatPolicy werden von Clients ignoriert, die mit einer failInjectionPolicy konfiguriert sind.

requestHeaderModifier

object (HeaderModifier)

Die Spezifikation zum Ändern der Header einer übereinstimmenden Anfrage vor der Zustellung der Anfrage an das Ziel. Wenn HeaderModifiers sowohl für Destination als auch für RouteAction festgelegt sind, werden sie zusammengeführt. Konflikte zwischen den beiden werden in der Konfiguration nicht gelöst.

responseHeaderModifier

object (HeaderModifier)

Die Spezifikation zum Ändern der Header einer Antwort, bevor die Antwort an den Client zurückgesendet wird. Wenn HeaderModifiers sowohl für Destination als auch für RouteAction festgelegt sind, werden sie zusammengeführt. Konflikte zwischen den beiden werden in der Konfiguration nicht gelöst.

urlRewrite

object (URLRewrite)

Die Spezifikation zum Umschreiben der URL, bevor Anfragen an das Ziel weitergeleitet werden.

timeout

string (Duration format)

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 "s". Beispiel: "3.5s".

retryPolicy

object (RetryPolicy)

Gibt die Wiederholungsrichtlinie an, die mit dieser Route verknüpft ist.

requestMirrorPolicy

object (RequestMirrorPolicy)

Gibt die Richtlinie an, wie Anfragen für das Routenziel an ein separates gespiegeltes Ziel blockiert werden. Der Proxy wartet nicht auf die Antwort des Schattenziels, bevor die Antwort zurückgegeben wird. Bevor Traffic an den Schattendienst gesendet wird, wird dem Host-/Behörden-Header das Suffix „-shadow“ angehängt.

corsPolicy

object (CorsPolicy)

Die Spezifikation für das Zulassen von clientseitigen ursprungsübergreifenden Anfragen.

statefulSessionAffinity

object (StatefulSessionAffinityPolicy)

Optional. Gibt cookiebasierte zustandsorientierte Sitzungsaffinität an.

directResponse

object (HttpDirectResponse)

Optional. Statisches HTTP-Antwortobjekt, das unabhängig von der Anfrage zurückgegeben wird.

idleTimeout

string (Duration format)

Optional. Gibt das Zeitlimit bei Inaktivität für die ausgewählte Route an. Das Zeitlimit bei Inaktivität ist definiert als der Zeitraum, in dem keine Byte über die Upstream- oder die Downstream-Verbindung gesendet oder empfangen wurden. Wenn die Richtlinie nicht konfiguriert ist, beträgt die standardmäßige Zeitüberschreitung bei Inaktivität 1 Stunde. Bei der Einstellung auf 0 s wird das Zeitlimit deaktiviert.

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

Ziel

Spezifikationen eines Ziels, an das die Anfrage weitergeleitet werden soll.

JSON-Darstellung
{
  "serviceName": string,
  "weight": integer,
  "requestHeaderModifier": {
    object (HeaderModifier)
  },
  "responseHeaderModifier": {
    object (HeaderModifier)
  }
}
Felder
serviceName

string

Die URL eines BackendService, an den Traffic weitergeleitet werden soll.

weight

integer

Gibt den Anteil der Anfragen an, die an das Back-End weitergeleitet werden, auf das im Feld „serviceName“ verwiesen wird. Dies wird wie folgt berechnet: - Gewichtung/Summe(Gewichtungen in dieser Zielliste). Bei Werten ungleich null kann ein Epsilon aus dem hier definierten Anteil vorhanden sein, abhängig von der Genauigkeit, die eine Implementierung unterstützt.

Wenn nur ein serviceName angegeben ist und dieser eine Gewichtung größer als 0 hat, werden 100% des Traffics an dieses Back-End weitergeleitet.

Wenn für einen bestimmten Dienstnamen Gewichtungen angegeben sind, müssen diese für alle Dienstnamen angegeben werden.

Wenn für alle Dienste keine Gewichtungen angegeben sind, wird der Traffic zu gleichen Teilen auf alle Dienste verteilt.

requestHeaderModifier

object (HeaderModifier)

Optional. Die Spezifikation zum Ändern der Header einer übereinstimmenden Anfrage vor der Zustellung der Anfrage an das Ziel. Wenn HeaderModifiers sowohl für Destination als auch für RouteAction festgelegt sind, werden sie zusammengeführt. Konflikte zwischen den beiden werden in der Konfiguration nicht gelöst.

responseHeaderModifier

object (HeaderModifier)

Optional. Die Spezifikation zum Ändern der Header einer Antwort, bevor die Antwort an den Client zurückgesendet wird. Wenn HeaderModifiers sowohl für Destination als auch für RouteAction festgelegt sind, werden sie zusammengeführt. Konflikte zwischen den beiden werden in der Konfiguration nicht gelöst.

HeaderModifier

Die Spezifikation zum Ändern des HTTP-Headers in HTTP-Anfragen und HTTP-Antworten.

JSON-Darstellung
{
  "set": {
    string: string,
    ...
  },
  "add": {
    string: string,
    ...
  },
  "remove": [
    string
  ]
}
Felder
set

map (key: string, value: string)

Header vollständig durch die angegebene Zuordnung überschreiben/ersetzen, wobei key der Name des Headers ist, value dem Wert des Headers entspricht.

Ein Objekt, das eine Liste von "key": value-Paaren enthält. Beispiel: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

add

map (key: string, value: string)

Fügen Sie die Header mit der angegebenen Map hinzu, wobei „key“ der Name des Headers und „value“ der Wert des Headers ist.

Ein Objekt, das eine Liste von "key": value-Paaren enthält. Beispiel: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

remove[]

string

Entfernen Sie Header (Abgleich nach Headernamen), die in der Liste angegeben sind.

Weiterleiten

Die Spezifikation für die Weiterleitung von Traffic.

JSON-Darstellung
{
  "hostRedirect": string,
  "pathRedirect": string,
  "prefixRewrite": string,
  "responseCode": enum (ResponseCode),
  "httpsRedirect": boolean,
  "stripQuery": boolean,
  "portRedirect": integer
}
Felder
hostRedirect

string

Der Host, der in der Weiterleitungsantwort verwendet wird, und nicht der in der Anfrage angegebene.

pathRedirect

string

Der Pfad, der in der Weiterleitungsantwort anstelle des in der Anfrage angegebenen Pfads verwendet wird. „pathWeiterleitung“ kann nicht zusammen mit „präfixWeiterleitung“ angegeben werden. Geben Sie eines allein oder mit keinem von beiden an. Wird weder das eine noch das andere Feld angegeben, wird der Pfad der ursprünglichen Anfrage für die Weiterleitung verwendet.

prefixRewrite

string

Gibt an, dass während der Weiterleitung das übereinstimmende Präfix (oder der Pfad) gegen diesen Wert ausgetauscht werden soll. Mit dieser Option können URLs basierend auf der Anfrage dynamisch erstellt werden.

responseCode

enum (ResponseCode)

Der für die Weiterleitung zu verwendende HTTP-Statuscode.

httpsRedirect

boolean

Wenn die Richtlinie auf „true“ gesetzt ist, wird das URL-Schema in der weitergeleiteten Anfrage auf „https“ gesetzt. Wenn dieser Parameter auf „false“ gesetzt ist, bleibt das URL-Schema der weitergeleiteten Anfrage dasselbe wie das der Anfrage.

Die Standardeinstellung ist „false“.

stripQuery

boolean

Ist die Richtlinie auf „true“ gesetzt, wird der zugehörige Suchanfragenteil der ursprünglichen URL vor der Weiterleitung der Anfrage entfernt. Ist sie auf „false“ gesetzt, wird der Suchanfragenteil der ursprünglichen URL beibehalten.

Die Standardeinstellung ist „false“.

portRedirect

integer

Der Port, der in der weitergeleiteten Anfrage verwendet wird, statt dem, der in der Anfrage angegeben wurde.

ResponseCode

Unterstützter HTTP-Antwortcode.

Enums
RESPONSE_CODE_UNSPECIFIED Standardwert
MOVED_PERMANENTLY_DEFAULT Entspricht 301.
FOUND Entspricht 302.
SEE_OTHER Entspricht 303.
TEMPORARY_REDIRECT Entspricht 307. In diesem Fall wird die Anfragemethode beibehalten.
PERMANENT_REDIRECT Entspricht 308. In diesem Fall wird die Anfragemethode beibehalten.

FaultInjectionPolicy

Die Spezifikation für die Fehlerinjektion, die in den Traffic eingeführt wurde, um die Ausfallsicherheit von Clients gegenüber dem Ausfall eines Zieldienstes zu testen. Als Teil der Fehlerinjektion können beim Senden von Anfragen an ein Ziel durch den Client-Proxy bei einem Prozentsatz der Anfragen Verzögerungen eingeführt werden, bevor diese Anfragen an den Zieldienst gesendet werden. In ähnlicher Weise können Anfragen vom Client-Proxy für einen bestimmten Prozentsatz der Anfragen abgebrochen werden.

JSON-Darstellung
{
  "delay": {
    object (Delay)
  },
  "abort": {
    object (Abort)
  }
}
Felder
delay

object (Delay)

Die Spezifikation zum Einfügen der Verzögerung bei Clientanfragen.

abort

object (Abort)

Die Spezifikation für den Abbruch von Clientanfragen.

Verzögerung

Spezifikation, wie Clientanfragen im Rahmen der Fehlerinjektion verzögert werden, bevor sie an ein Ziel gesendet werden.

JSON-Darstellung
{
  "fixedDelay": string,
  "percentage": integer
}
Felder
fixedDelay

string (Duration format)

Geben Sie eine feste Verzögerung vor dem Weiterleiten der Anfrage an.

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

percentage

integer

Der Prozentsatz des Traffics, bei dem die Verzögerung eingefügt 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

integer

Der HTTP-Statuscode, mit dem die Anfrage abgebrochen wird.

Der Wert muss zwischen 200 und 599 (jeweils einschließlich) liegen.

percentage

integer

Prozentsatz des Traffics, der abgebrochen wird.

Der Wert muss zwischen [0, 100] liegen

URLRewrite

Die Spezifikation zum Ändern der URL der Anfrage, bevor die Anfrage an das Ziel weitergeleitet wird.

JSON-Darstellung
{
  "pathPrefixRewrite": string,
  "hostRewrite": string
}
Felder
pathPrefixRewrite

string

Vor der Weiterleitung der Anfrage an das ausgewählte Ziel wird der übereinstimmende Teil des Anfragepfads durch diesen Wert ersetzt.

hostRewrite

string

Vor der Weiterleitung der Anfrage an das ausgewählte Ziel wird der Header des Anfragehosts durch diesen Wert ersetzt.

RetryPolicy

Die Spezifikationen für Wiederholungsversuche.

JSON-Darstellung
{
  "retryConditions": [
    string
  ],
  "numRetries": integer,
  "perTryTimeout": string
}
Felder
retryConditions[]

string

Gibt eine oder mehrere Bedingungen für diese Wiederholungsrichtlinie an. Gültige Werte: 5xx: Der Proxy versucht, einen erneuten Versuch durchzuführen, wenn der Zieldienst mit einem 5xx-Antwortcode antwortet oder wenn der Zieldienst überhaupt nicht antwortet. Beispiele: Trennen, zurücksetzen, Zeitüberschreitung beim Lesen, Verbindungsfehler und abgelehnte Streams.

Gateway-Fehler: Ähnlich wie 5xx, gilt aber nur für die Antwortcodes 502, 503, 504.

zurücksetzen: Der Proxy versucht, einen neuen Versuch durchzuführen, wenn der Zieldienst überhaupt nicht antwortet (Zeitüberschreitung beim Trennen/Zurücksetzen/Lesen).

connect-failure: Der Proxy versucht, bei einem Verbindungsproblem zum Ziel noch einmal zu versuchen, z. B. aufgrund von Zeitüberschreitungen bei der Verbindung.

retriable-4xx: Der Proxy versucht nach wiederholbaren 4xx-Antwortcodes zu suchen. Derzeit wird nur der Fehler 409 unterstützt.

abgelehnter Stream: Der Proxy wird noch einmal versuchen, wenn das Ziel den Stream mit dem Fehlercode REFUSED_STREAM zurücksetzt. Dieser Typ zum Zurücksetzen bedeutet, dass Sie den Vorgang bedenkenlos wiederholen können.

numRetries

integer

Gibt die zulässige Anzahl von Wiederholungen an. Diese Zahl muss größer als 0 sein. Wenn keine Angabe erfolgt, wird standardmäßig 1 verwendet.

perTryTimeout

string (Duration format)

Gibt ein Zeitlimit ungleich null pro Wiederholungsversuch an.

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

RequestMirrorPolicy

Gibt die Richtlinie an, mit der Anfragen an einen separaten gespiegelten Zieldienst blockiert werden. Der Proxy wartet nicht auf Antworten vom Schattendienst. Bevor Traffic an den Schattendienst gesendet wird, wird dem Host-/Behörden-Header das Suffix „-shadow“ angehängt.

JSON-Darstellung
{
  "destination": {
    object (Destination)
  },
  "mirrorPercent": number
}
Felder
destination

object (Destination)

Das Ziel, an das die Anfragen gespiegelt werden. Die Gewichtung des Ziels wird ignoriert.

mirrorPercent

number

Optional. Der Prozentsatz der Anfragen, die an das gewünschte Ziel gespiegelt werden sollen.

CorsPolicy

Die Spezifikation für das Zulassen von clientseitigen ursprungsübergreifenden Anfragen.

JSON-Darstellung
{
  "allowOrigins": [
    string
  ],
  "allowOriginRegexes": [
    string
  ],
  "allowMethods": [
    string
  ],
  "allowHeaders": [
    string
  ],
  "exposeHeaders": [
    string
  ],
  "maxAge": string,
  "allowCredentials": boolean,
  "disabled": boolean
}
Felder
allowOrigins[]

string

Gibt die Liste der Ursprünge an, die CORS-Anfragen ausführen dürfen. Ein Ursprung ist zulässig, wenn er entweder mit einem Element in „allowOrigins“ oder einem Element in „allowOriginRegexes“ übereinstimmt.

allowOriginRegexes[]

string

Gibt die Muster für reguläre Ausdrücke an, die mit den zulässigen Ursprüngen übereinstimmen. Informationen zur Grammatik regulärer Ausdrücke finden Sie unter https://github.com/google/re2/wiki/Syntax.

allowMethods[]

string

Gibt den Inhalt für den Header „Access-Control-Allow-Methods“ an.

allowHeaders[]

string

Gibt den Inhalt für den Header „Access-Control-Allow-Headers“ an.

exposeHeaders[]

string

Gibt den Inhalt für den Header „Access-Control-Expose-Headers“ an.

maxAge

string

Gibt an, wie lange das Ergebnis einer Preflight-Anfrage in Sekunden im Cache gespeichert werden kann. Dies entspricht dem Header „Access-Control-Max-Age“.

allowCredentials

boolean

Wenn Sie diesen Wert als Antwort auf eine Preflight-Anfrage auf „true“ setzen, kann die tatsächliche Anfrage Nutzeranmeldedaten enthalten. Dies entspricht dem Header „Access-Control-Allow-Credentials“.

Der Standardwert ist "false".

disabled

boolean

Bei „true“ ist die CORS-Richtlinie deaktiviert. Der Standardwert ist „false“. Das bedeutet, dass die CORS-Richtlinie in Kraft ist.

StatefulSessionAffinityPolicy

Die Spezifikation für die cookiebasierte zustandsorientierte Sitzungsaffinität, bei der die Datumsebene ein „Sitzungscookie“ mit dem Namen „GSSA“ bereitstellt, das einen bestimmten Zielhost codiert. Jede Anfrage mit diesem Cookie wird an diesen Host weitergeleitet, solange der Zielhost aktiv und fehlerfrei ist.

Das Sitzungscookie wird von der proxylosen gRPC-Mesh-Bibliothek oder dem Sidecar-Proxy verwaltet. Der Clientanwendungscode ist jedoch für das Kopieren des Cookies von jedem RPC in der Sitzung in den nächsten verantwortlich.

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

string (Duration format)

Erforderlich. Der Cookie-TTL-Wert 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 "s". Beispiel: "3.5s".

HttpDirectResponse

Das statische HTTP-Antwortobjekt, das zurückgegeben werden soll.

JSON-Darstellung
{
  "status": integer,

  // Union field HttpBody can be only one of the following:
  "stringBody": string,
  "bytesBody": string
  // End of list of possible types for union field HttpBody.
}
Felder
status

integer

Erforderlich. Status, der im Rahmen der HTTP-Antwort zurückgegeben werden soll. Hier können nur positive ganze Zahlen eingegeben werden.

Union-Feld HttpBody. Text, der als Teil der HTTP-Antwort zurückgegeben werden soll. Für HttpBody ist nur einer der folgenden Werte zulässig:
stringBody

string

Optional. Antworttext als String. Der Text darf maximal 1.024 Zeichen lang sein.

bytesBody

string (bytes format)

Optional. Antworttext in Byte. Die maximale Körpergröße beträgt 4096 B.

Ein base64-codierter String.

Methoden

create

Erstellt eine neue HttpRoute in einem bestimmten Projekt an einem bestimmten Standort.

delete

Löscht eine einzelne HttpRoute.

get

Ruft Details zu einer einzelnen HttpRoute ab.

list

Listet HttpRoute in einem bestimmten Projekt und an einem bestimmten Ort auf.

patch

Aktualisiert die Parameter einer einzelnen HttpRoute.