REST Resource: projects.locations.httpRoutes

Ressource: HttpRoute

„HttpRoute“ ist die Ressource, die definiert, wie HTTP-Traffic von einer 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 stimmt mit dem Muster projects/*/locations/global/httpRoutes/http_route_name> überein.

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

hostnames[]

string

Erforderlich. Hostnames definiert eine Reihe von Hosts, die mit dem HTTP-Host-Header übereinstimmen sollen, um eine HttpRoute zum Verarbeiten 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. – Ein Hostname kann mit einem Platzhalterlabel (*.) vorangestellt werden. Das Platzhalterlabel muss als erstes Label allein stehen.

Hostname kann „genau“ sein Dabei handelt es sich um einen Domainnamen ohne den abschließenden Punkt eines Netzwerkhosts (z. B. foo.example.com) oder um einen „Platzhalter“. Dabei handelt es sich um einen Domainnamen mit einem vorangestellten 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.

Es ist beispielsweise zulässig, dass Routen für die Hostnamen *.foo.bar.com und *.bar.com mit demselben Mesh (oder Gateways im selben Umfang) verknüpft sind. Es ist jedoch nicht möglich, zwei Routen sowohl mit *.bar.com als auch mit bar.com zu verknüpfen.

meshes[]

string

Optional. Mit „Meshes“ wird eine Liste von Meshes definiert, an die diese HTTPRoute angehängt ist. Dies ist eine der Routingregeln für die Weiterleitung der vom Mesh gesendeten Anfragen.

Jede Mesh-Referenz muss dem Muster entsprechen: projects/*/locations/global/meshes/<mesh_name>

Das angehängte Mesh-Netzwerk sollte den Typ SIDECAR haben

gateways[]

string

Optional. Unter „Gateways“ wird eine Liste der Gateways definiert, an die diese HTTPRoute angehängt ist. Dies ist eine der Routingregeln für die Weiterleitung der vom Gateway gesendeten Anfragen.

Jeder Gateway-Verweis sollte diesem 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 festlegen, wie Traffic weitergeleitet und verarbeitet wird. Regeln werden basierend auf dem für die Regel angegebenen RouteMatch abgeglichen.

RouteRule

Gibt an, wie Traffic abgeglichen und weitergeleitet wird, wenn Traffic übereinstimmt.

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. Das bedeutet, dass diese Regel angewendet wird, wenn EINE der Übereinstimmungen erfüllt ist.

Wenn kein Feld für Übereinstimmungen angegeben ist, gleicht diese Regel den Traffic ohne Bedingungen ab.

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

action

object (RouteAction)

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

RouteMatch

RouteMatch definiert Spezifikationen zum Abgleich von Anfragen. Wenn mehrere Übereinstimmungstypen festgelegt sind, wird diese RouteMatch-Übereinstimmung erzielt, wenn ALLE Übereinstimmungstypen erfüllt sind.

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 den Übereinstimmungen „PräfixMatch“ und „fullPathMatch“ zwischen Groß- und Kleinschreibung unterschieden wird. Der Standardwert ist „false“.

headers[]

object (HeaderMatch)

Gibt eine Liste von HTTP-Anfrageheadern für den Abgleich an. ALLE angegebenen Überschriften müssen übereinstimmen.

queryParameters[]

object (QueryParameterMatch)

Gibt eine Liste von Abfrageparametern für den Abgleich an. ALLE Abfrageparameter 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“, „PrefixMatch“ oder „RegexMatch“ verwendet werden.

prefixMatch

string

Der Wert des HTTP-Anfragepfads muss mit dem angegebenen PräfixMatch beginnen. PräfixMatch muss mit einem Schrägstrich (/) beginnen.

Es darf nur „fullPathMatch“, „PrefixMatch“ oder „RegexMatch“ verwendet werden.

regexMatch

string

Der Wert des HTTP-Anfragepfads muss dem regulären Ausdruck entsprechen, der von „regexMatch“ angegeben wird, nachdem alle Suchparameter und Anker von der ursprünglichen URL entfernt wurden. Informationen zur regulären Ausdrucksgrammatik finden Sie unter https://github.com/google/re2/wiki/Syntax.

Es darf nur „fullPathMatch“, „PrefixMatch“ 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, mit dem abgeglichen werden soll.

invertMatch

boolean

Wenn diese Option angegeben ist, wird das Abgleichsergebnis vor der Überprüfung umgekehrt. 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 muss 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 „prefixMatch“ beginnen.

presentMatch

boolean

Es muss ein Header mit „headerName“ vorhanden sein. Die Übereinstimmung erfolgt unabhängig davon, ob der Header einen Wert hat.

suffixMatch

string

Der Wert des Headers muss mit dem Inhalt von „suffixMatch“ enden.

rangeMatch

object (IntegerRange)

Wenn angegeben, wird die Regel angewendet, wenn der Wert des Anfrageheaders innerhalb des Bereichs liegt.

IntegerRange

Stellt einen Ganzzahlwertbereich 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 Abfrageparameters, der übereinstimmen 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 muss nur eine der Optionen „exactMatch“, „regexMatch“ oder „presentMatch“ festgelegt sein.

regexMatch

string

Der Wert des Suchparameters muss mit dem regulären Ausdruck übereinstimmen, der durch „RegexMatch“ angegeben wird. Informationen zur regulären Ausdrucksgrammatik finden Sie unter https://github.com/google/re2/wiki/Syntax.

Es muss nur eine der Optionen „exactMatch“, „regexMatch“ oder „presentMatch“ festgelegt sein.

presentMatch

boolean

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

Es muss nur eine der Optionen „exactMatch“, „regexMatch“ oder „presentMatch“ festgelegt sein.

RouteAction

Die Spezifikationen für die Weiterleitung 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 dieses Feld festgelegt ist, wird die Anfrage wie in diesem Feld konfiguriert weitergeleitet.

faultInjectionPolicy

object (FaultInjectionPolicy)

Die Spezifikation für die Fehlerinjektion, die in den Traffic eingeführt wird, um die Ausfallsicherheit von Clients bei einem Ausfall des Backend-Dienstes zu testen. Im Rahmen der Fehlerinjektion können beim Senden von Anfragen an einen Back-End-Dienst Verzögerungen bei einem bestimmten Prozentsatz der Anfragen auftreten, bevor diese Anfragen an den Back-End-Dienst gesendet werden. Ebenso können Anfragen von Clients für einen bestimmten Prozentsatz der Anfragen abgebrochen werden.

Zeitüberschreitung und Wiederholungsrichtlinie werden von Clients ignoriert, die mit einer FehlerinjectionPolicy konfiguriert sind.

requestHeaderModifier

object (HeaderModifier)

Die Spezifikation zum Ändern der Header einer übereinstimmenden Anfrage, bevor die Anfrage an das Ziel gesendet wird. Wenn HeaderModifiers sowohl für das Ziel als auch für die 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 sie an den Client zurückgesendet wird. Wenn HeaderModifiers sowohl für das Ziel als auch für die RouteAction festgelegt sind, werden sie zusammengeführt. Konflikte zwischen den beiden werden in der Konfiguration nicht gelöst.

urlRewrite

object (URLRewrite)

Die URL-Umschreibung, die vor dem Weiterleiten von Anfragen an das Ziel verwendet wird.

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. am 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 dieser Route zugeordnet ist.

requestMirrorPolicy

object (RequestMirrorPolicy)

Gibt die Richtlinie an, wie Anfragen, die für das Routenziel bestimmt sind, für ein separates gespiegeltes Ziel verdeckt werden. Der Proxy wartet nicht auf eine Antwort des Schattenziels, bevor er die Antwort zurückgibt. Bevor Traffic an den Schattendienst gesendet wird, wird dem Host-/Autoritäts-Header das Suffix „-shadow“ hinzugefügt.

corsPolicy

object (CorsPolicy)

Die Spezifikation für clientseitige Cross-Origin-Anfragen.

statefulSessionAffinity

object (StatefulSessionAffinityPolicy)

Optional. Gibt die 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 für die Inaktivität für die ausgewählte Route an. Die Zeitüberschreitung bei Inaktivität wird als der Zeitraum definiert, in dem weder über die Upstream- noch über die Downstream-Verbindung Bytes gesendet oder empfangen werden. Wenn die Richtlinie nicht konfiguriert ist, beträgt die standardmäßige Zeitüberschreitung bei 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 "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 Back-End-Dienstes, 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. Die Berechnung erfolgt so: - Gewicht ÷ Summe der Gewichte 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 Gewichte für einen Dienstnamen angegeben werden, müssen sie 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 Header-Modifizierer sowohl für das Ziel als auch für die Routenaktion 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 sie an den Client zurückgesendet wird. Wenn Header-Modifizierer sowohl für das Ziel als auch für die Routenaktion 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 der HTTP-Anfrage und der HTTP-Antwort.

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

map (key: string, value: string)

Überschreibt die Header vollständig mit der angegebenen Zuordnung, wobei der Schlüssel der Name des Headers und der Wert der Wert des Headers ist.

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 Zuordnung hinzu, wobei der Schlüssel der Name des Headers und der Wert 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 die in der Liste angegebenen Header (Abgleich nach Headernamen).

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, anstelle des in der Anfrage angegebenen Hosts.

pathRedirect

string

Der Pfad, der in der Weiterleitungsantwort verwendet wird, anstelle des in der Anfrage angegebenen Pfads. „pathRedirect“ kann nicht zusammen mit „prefixRedirect“ angegeben werden. Geben Sie nur eine an oder keines von beiden. Wenn keines davon angegeben ist, wird der Pfad der ursprünglichen Anfrage für die Weiterleitung verwendet.

prefixRewrite

string

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

responseCode

enum (ResponseCode)

Der HTTP-Statuscode, der für die Weiterleitung verwendet werden soll.

httpsRedirect

boolean

Wenn dieser Parameter 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

Wenn dieser Parameter auf „wahr“ gesetzt ist, wird der zugehörige Abfrageteil der ursprünglichen URL entfernt, bevor die Anfrage weitergeleitet wird. Wenn die Richtlinie auf „false“ gesetzt ist, wird der Suchanfragenteil der Original-URL beibehalten.

Der Standardwert ist „false“.

portRedirect

integer

Der Port, der in der weitergeleiteten Anfrage anstelle des in der Anfrage angegebenen Ports verwendet wird.

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 wird, um die Ausfallsicherheit von Clients bei Zieldienstausfällen zu testen. Im Rahmen der Fehlerinjektion können beim Senden von Anfragen an ein Ziel durch den Client-Proxy Verzögerungen für einen Prozentsatz der Anfragen eingeführt werden, bevor diese Anfragen an den Zieldienst gesendet werden. Ebenso können Anfragen für einen bestimmten Prozentsatz der Anfragen vom Client-Proxy abgebrochen werden.

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

object (Delay)

Die Spezifikation für die Verzögerung von Clientanfragen.

abort

object (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

string (Duration format)

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

percentage

integer

Der Prozentsatz des Traffics, bei dem die 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

integer

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

Der Wert muss zwischen 200 und 599 liegen.

percentage

integer

Der Prozentsatz der Zugriffe, die abgebrochen werden.

Der Wert muss zwischen [0, 100] liegen.

URLRewrite

Die Spezifikation zum Ändern der Anfrage-URL, 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 an, wenn diese Wiederholungsrichtlinie gilt. Gültige Werte: 5xx: Der Proxy versucht einen erneuten Versuch, wenn der Zieldienst einen 5xx-Antwortcode zurückgibt, oder wenn der Zieldienst überhaupt nicht antwortet, z. B. 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 erneuten Versuch, wenn der Zieldienst überhaupt nicht reagiert (Zeitüberschreitung beim Trennen/Zurücksetzen/Lesen)

connect-failure: Der Proxy versucht bei Verbindungsfehlern, z. B. aufgrund von Zeitüberschreitungen, noch einmal, eine Verbindung zum Ziel herzustellen.

retriable-4xx: Der Proxy versucht bei wiederholbaren 4xx-Antwortcodes noch einmal. Derzeit ist 409 der einzige wiederholbare Fehler, der unterstützt wird.

refused-stream: Der Proxy versucht es noch einmal, wenn das Ziel den Stream mit dem Fehlercode REFUSED_STREAM zurücksetzt. Dieser zurückgesetzte Typ gibt an, dass ein neuer Versuch sicher ist.

numRetries

integer

Gibt die zulässige Anzahl an Wiederholungsversuchen an. Diese Zahl muss > 0. 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, wie Anfragen an einen separaten gespiegelten Zieldienst gesendet werden. Der Proxy wartet nicht auf Antworten vom Schattendienst. Bevor Traffic an den Schattendienst gesendet wird, wird dem Host-/Autoritäts-Header das Suffix „-shadow“ hinzugefügt.

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

object (Destination)

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

mirrorPercent

number

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

CorsPolicy

Die Spezifikation zum Zulassen clientseitiger ursprungsübergreifender 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 regulären Ausdrucksmuster an, die mit 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 des Headers „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 diese Option in einer Antwort auf eine Preflight-Anfrage auf „wahr“ setzen, bedeutet das, dass die tatsächliche Anfrage Nutzeranmeldedaten enthalten kann. Dies entspricht dem Header „Access-Control-Allow-Credentials“.

Der Standardwert ist "false".

disabled

boolean

Wenn „true“ festgelegt ist, ist die CORS-Richtlinie deaktiviert. Der Standardwert ist „false“. Dies bedeutet, dass die CORS-Richtlinie in Kraft ist.

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

string (Duration format)

Erforderlich. Der TTL-Wert für Cookies für den Set-Cookie-Header, der von der Datenebene generiert wird. 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

Statisches 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 als Teil 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 Textkörper darf maximal 1.024 Zeichen lang sein.

bytesBody

string (bytes format)

Optional. Antworttext als Byte. Die maximale Größe des Body-Elements beträgt 4.096 B.

Ein base64-codierter String.

Methoden

create

Erstellt eine neue HttpRoute in einem bestimmten Projekt und an einem bestimmten Ort.

delete

Löscht eine einzelne HttpRoute.

get

Ruft Details zu einer einzelnen HttpRoute ab.

getIamPolicy

Ruft die Zugriffssteuerungsrichtlinie für eine Ressource ab.

list

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

patch

Aktualisiert die Parameter einer einzelnen HttpRoute.

setIamPolicy

Legt die Zugriffskontrollrichtlinie für die angegebene Ressource fest.

testIamPermissions

Gibt die Berechtigungen des Aufrufers für die angegebene Ressource zurück.