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

Kennung. 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.

Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" oder "2014-10-02T15:01:23+05:30".

updateTime

string (Timestamp format)

Nur Ausgabe. Der Zeitstempel, der angibt, wann die Ressource aktualisiert wurde.

Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" oder "2014-10-02T15:01:23+05:30".

hostnames[]

string

Erforderlich. Hostnames definiert eine Reihe von Hosts, die mit dem HTTP-Hostheader übereinstimmen sollen, um eine HttpRoute zum Verarbeiten der Anfrage auszuwählen. Der Hostname ist der voll qualifizierte Domainname eines Netzwerkhosts, wie in RFC 1123 definiert, mit der Ausnahme, dass IP-Adressen nicht zulässig sind. – Einem Hostnamen kann ein Platzhalterlabel (*.) vorangestellt werden. Das Platzhalterlabel muss als erstes Label allein stehen.

Der Hostname kann „precise“ (genau) sein, d. h. ein Domainname ohne den abschließenden Punkt eines Netzwerkhosts (z. B. foo.example.com), oder „wildcard“ (Platzhalter), d. h. 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 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 demselben Mesh (oder Gateways im selben Bereich) zugeordnet werden. Es ist jedoch nicht möglich, zwei Routen sowohl *.bar.com als auch bar.com zuzuordnen.

meshes[]

string

Optional. In „meshes“ wird eine Liste von Mesh-Netzwerken definiert, an die diese HttpRoute angehängt ist, als eine der Routingregeln zum Weiterleiten der Anfragen, die vom Mesh-Netzwerk verarbeitet werden.

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

Das angehängte Mesh sollte vom Typ SIDECAR sein.

gateways[]

string

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

Jede Gateway-Referenz muss dem Muster projects/*/locations/global/gateways/<gateway_name> entsprechen.

labels

map (key: string, value: string)

Optional. Eine Reihe 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. Regeln werden sequenziell auf Grundlage des für die Regel angegebenen RouteMatch abgeglichen.

RouteRule

Gibt an, wie Traffic 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 Abgleichen der Regel mit eingehenden HTTP-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.

Wenn Sie eine Standardregel konfigurieren möchten, fügen Sie am Ende der Regelliste eine Regel ohne angegebene Übereinstimmungen hinzu.

action

object (RouteAction)

Die detaillierte Regel, die definiert, wie abgeglichener Traffic weitergeleitet wird.

RouteMatch

RouteMatch definiert Spezifikationen, die zum Abgleichen von Anfragen verwendet werden. Wenn mehrere Abgleichstypen festgelegt sind, wird dieser RouteMatch nur angewendet, wenn ALLE Abgleichstypen ü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 prefixMatch- und fullPathMatch-Übereinstimmungen 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 Headern müssen übereinstimmen.

queryParameters[]

object (QueryParameterMatch)

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

Union-Feld PathMatch.

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

fullPathMatch

string

Der Wert für den HTTP-Anfragepfad muss genau mit diesem Wert übereinstimmen.

Es sollte nur eine der Optionen „fullPathMatch“, „prefixMatch“ oder „regexMatch“ verwendet werden.

prefixMatch

string

Der Wert für den HTTP-Anfragepfad muss mit dem angegebenen „prefixMatch“ beginnen. „prefixMatch“ muss mit einem Schrägstrich (/) beginnen.

Es sollte nur eine der Optionen „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 mit der ursprünglichen URL bereitgestellten Abfrageparameter und Anker entfernt wurden. Informationen zur Grammatik regulärer Ausdrücke finden Sie unter https://github.com/google/re2/wiki/Syntax.

Es sollte nur eine der Optionen „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 dieser Wert angegeben wird, wird das Ergebnis der Übereinstimmung vor der Überprüfung invertiert. Der Standardwert ist „false“.

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 dem regulären Ausdruck entsprechen, der in „regexMatch“ angegeben ist. 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)

Falls angegeben, entspricht die Regel, wenn der Wert des Anfrageheaders im Bereich liegt.

IntegerRange

Stellt einen Bereich von Ganzzahlwerten dar.

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

integer

Beginn des Bereichs (einschließlich)

end

integer

Ende des Bereichs (ausschließlich)

QueryParameterMatch

Spezifikationen für den 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 abzugleichenden Abfrageparameters.

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 werden.

regexMatch

string

Der Wert des Suchparameters muss dem regulären Ausdruck entsprechen, der durch „regexMatch“ angegeben wird. Informationen zur Grammatik regulärer Ausdrücke finden Sie unter https://github.com/google/re2/wiki/Syntax.

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

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 werden.

RouteAction

Die Spezifikationen für das Weiterleiten von Traffic und das Anwenden 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 der Traffic weitergeleitet werden soll.

redirect

object (Redirect)

Wenn dieses Feld festgelegt ist, wird die Anfrage entsprechend der Konfiguration in diesem Feld weitergeleitet.

faultInjectionPolicy

object (FaultInjectionPolicy)

Die Spezifikation für die Fehlerinjektion, die in den Traffic eingeführt wird, um die Ausfallsicherheit von Clients bei einem Fehler des Back-End-Dienstes zu testen. Im Rahmen der Fehlerinjektion können Verzögerungen bei einem bestimmten Prozentsatz von Anfragen eingeführt werden, bevor diese Anfragen an den Backend-Dienst 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.

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 das Ziel als auch für die RouteAction festgelegt sind, werden sie zusammengeführt. Konflikte zwischen den beiden werden nicht in der Konfiguration 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 das Ziel als auch für die RouteAction festgelegt sind, werden sie zusammengeführt. Konflikte zwischen den beiden werden nicht in der Konfiguration 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 mit dieser Route verknüpfte Richtlinie für Wiederholungsversuche an.

requestMirrorPolicy

object (RequestMirrorPolicy)

Gibt die Richtlinie an, wie Anfragen, die für das Ziel der Routen bestimmt sind, an ein separates gespiegeltes Ziel weitergeleitet werden. Der Proxy wartet nicht auf eine Antwort des Schattenziels, bevor er die Antwort zurückgibt. Bevor Traffic an den Shadow-Dienst gesendet wird, wird dem Host-/Autoritätsheader „-shadow“ angehängt.

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 werden soll.

idleTimeout

string (Duration format)

Optional. Gibt das Leerlauf-Zeitlimit für die ausgewählte Route an. Das Leerlauftimeout 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 Standard-Leerlauftimeout 1 Stunde. Wenn der Wert auf „0s“ gesetzt ist, 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 Backend weitergeleitet werden, auf das im Feld „serviceName“ verwiesen wird. Der Wert wird so berechnet: - Gewicht/Summe(Gewichte in dieser Zielliste). Bei Werten ungleich null kann es je nach Genauigkeit der Implementierung eine Abweichung vom hier definierten genauen Anteil geben.

Wenn nur ein serviceName angegeben ist und dieser ein Gewicht von mehr als 0 hat, wird 100% des Traffics an dieses Backend weitergeleitet.

Wenn Gewichte für einen Dienstnamen angegeben werden, müssen sie für alle angegeben werden.

Wenn für alle Dienste keine Gewichte angegeben sind, wird der Traffic gleichmäßig auf alle 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 das Ziel als auch für die RouteAction festgelegt sind, werden sie zusammengeführt. Konflikte zwischen den beiden werden nicht in der Konfiguration 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 das Ziel als auch für die RouteAction festgelegt sind, werden sie zusammengeführt. Konflikte zwischen den beiden werden nicht in der Konfiguration gelöst.

HeaderModifier

Die Spezifikation zum Ändern von HTTP-Headern in HTTP-Anfragen und HTTP-Antworten.

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

map (key: string, value: string)

Überschreibt/ersetzt 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

Entfernt die in der Liste angegebenen Header (Abgleich anhand von 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 anstelle des in der Anfrage angegebenen Hosts verwendet wird.

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 entweder nur einen oder keinen Wert an. Wenn keines angegeben ist, wird der Pfad der ursprünglichen Anfrage für die Weiterleitung verwendet.

prefixRewrite

string

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

responseCode

enum (ResponseCode)

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

httpsRedirect

boolean

Wenn diese Option auf „true“ gesetzt ist, wird das URL-Schema in der weitergeleiteten Anfrage auf „https“ gesetzt. Wenn der Wert auf „false“ gesetzt ist, bleibt das URL-Schema der weitergeleiteten Anfrage dasselbe wie das der ursprünglichen Anfrage.

Die Standardeinstellung ist „false“.

stripQuery

boolean

Wenn „true“ festgelegt ist, wird der zugehörige Suchparameterteil der ursprünglichen URL entfernt, bevor die Anfrage weitergeleitet wird. Wenn der Wert auf „false“ gesetzt ist, wird der Anfrageteil der ursprünglichen URL beibehalten.

Die Standardeinstellung 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 einem Ausfall des Zieldienstes zu testen. Im Rahmen der Fehlerinjektion können Verzögerungen durch den Clientproxy bei einem Prozentsatz der Anfragen eingeführt werden, bevor diese Anfragen an den Zieldienst gesendet werden. Ebenso 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 von Verzögerungen bei Clientanfragen.

abort

object (Abort)

Die Spezifikation für das 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 eine Verzögerung eingefügt wird.

Der Wert muss zwischen 0 und 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, der zum Abbrechen der Anfrage verwendet wurde.

Der Wert muss zwischen 200 und 599 liegen.

percentage

integer

Der Prozentsatz des Traffics, der abgebrochen wird.

Der Wert muss zwischen 0 und 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

Bevor die Anfrage an das ausgewählte Ziel weitergeleitet wird, wird der übereinstimmende Teil des Anfragepfads durch diesen Wert ersetzt.

hostRewrite

string

Bevor die Anfrage an das ausgewählte Ziel weitergeleitet wird, wird der Host-Header der Anfrage 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, unter denen diese Richtlinie für Wiederholungsversuche gilt. Gültige Werte: 5xx: Der Proxy versucht es noch einmal, wenn der Zieldienst mit einem 5xx-Antwortcode antwortet oder wenn der Zieldienst überhaupt nicht antwortet, z. B. bei Trennung, Zurücksetzung, Lesezeitüberschreitung, Verbindungsfehler und abgelehnten Streams.

gateway-error: Ähnlich wie bei 5xx, gilt aber nur für die Antwortcodes 502, 503 und 504.

reset: Der Proxy versucht es noch einmal, wenn der Zieldienst überhaupt nicht reagiert (Verbindungsunterbrechung/Zurücksetzen/Lese-Zeitüberschreitung).

connect-failure: Der Proxy versucht es bei Verbindungsfehlern mit dem Ziel noch einmal, z. B. bei Zeitüberschreitungen bei der Verbindung.

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

refused-stream: Der Proxy versucht es noch einmal, wenn das Ziel den Stream mit dem Fehlercode REFUSED_STREAM zurücksetzt. Diese Art von Zurücksetzung weist darauf hin, dass es sicher ist, es noch einmal zu versuchen.

numRetries

integer

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

perTryTimeout

string (Duration format)

Gibt ein Timeout 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 für das Shadowing von Anfragen an einen separaten gespiegelten Zieldienst an. Der Proxy wartet nicht auf Antworten vom Schattendienst. Bevor Traffic an den Shadow-Dienst gesendet wird, wird dem Host-/Autoritätsheader „-shadow“ angehängt.

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.

CorsPolicy

Die Spezifikation für clientseitige Cross-Origin-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. Eine Quelle ist zulässig, wenn sie entweder mit einem Element in „allowOrigins“ oder mit einem Element in „allowOriginRegexes“ übereinstimmt.

allowOriginRegexes[]

string

Gibt die Muster für reguläre Ausdrücke 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 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, 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“, ist die CORS-Richtlinie deaktiviert. Der Standardwert ist „false“, was bedeutet, dass die CORS-Richtlinie in Kraft ist.

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

string (Duration format)

Erforderlich. Der TTL-Wert für das Cookie 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

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. Der 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. Die maximale Länge des Textkörpers beträgt 1.024 Zeichen.

bytesBody

string (bytes format)

Optional. Antworttext als Byte. Die maximale Größe des Texts beträgt 4.096 Bytes.

Ein base64-codierter String.

Methoden

create

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

delete

Löscht eine einzelne HttpRoute.

get

Ruft Details zu einer einzelnen HttpRoute ab.

list

Listet HttpRoute in einem angegebenen Projekt und an einem angegebenen 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.