- Recurso: HttpRoute
- RouteRule
- RouteMatch
- HeaderMatch
- IntegerRange
- QueryParameterMatch
- RouteAction
- Destino
- HeaderModifier
- Redirección
- ResponseCode
- FaultInjectionPolicy
- Retraso
- Abortar
- URLRewrite
- RetryPolicy
- RequestMirrorPolicy
- CorsPolicy
- StatefulSessionAffinityPolicy
- HttpDirectResponse
- Métodos
Recurso: HttpRoute
HttpRoute es el recurso que define cómo debe enrutar el tráfico HTTP un recurso Mesh o Gateway.
Representación JSON |
---|
{
"name": string,
"selfLink": string,
"description": string,
"createTime": string,
"updateTime": string,
"hostnames": [
string
],
"meshes": [
string
],
"gateways": [
string
],
"labels": {
string: string,
...
},
"rules": [
{
object ( |
Campos | |
---|---|
name |
Obligatorio. Nombre del recurso HttpRoute. Coincide con el patrón |
selfLink |
Solo de salida. URL definida por el servidor de este recurso |
description |
Opcional. Descripción de texto libre del recurso. La longitud máxima es de 1024 caracteres. |
createTime |
Solo de salida. Marca de tiempo de creación del recurso. Marca de tiempo en formato RFC3339 UTC "Zulu", con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: |
updateTime |
Solo de salida. Marca de tiempo de la última actualización del recurso. Marca de tiempo en formato RFC3339 UTC "Zulu", con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: |
hostnames[] |
Obligatorio. Los nombres de host definen un conjunto de hosts que deben coincidir con el encabezado de host HTTP para seleccionar una HttpRoute que procese la solicitud. El nombre de host es el nombre de dominio completo de un host de red, tal como se define en RFC 1123, con la excepción de que no se permiten IPs. - Un nombre de host puede ir precedido de una etiqueta comodín ( El nombre de host puede ser "preciso", que es un nombre de dominio sin el punto final de un host de red (por ejemplo, Ten en cuenta que, según RFC1035 y RFC1123, una etiqueta debe estar formada por caracteres alfanuméricos en minúscula o guiones (-), y debe empezar y terminar con un carácter alfanumérico. No se permite ningún otro signo de puntuación. Las rutas asociadas a una malla o a las pasarelas deben tener nombres de host únicos. Si intentas adjuntar varias rutas con nombres de host que entren en conflicto, se rechazará la configuración. Por ejemplo, aunque es aceptable que las rutas de los nombres de host |
meshes[] |
Opcional. Meshes define una lista de mallas a las que se adjunta este HttpRoute como una de las reglas de enrutamiento para enrutar las solicitudes atendidas por la malla. Cada referencia de malla debe coincidir con el patrón: El archivo Mesh adjunto debe ser de tipo SIDECAR. |
gateways[] |
Opcional. Gateways define una lista de pasarelas a las que está asociado este HttpRoute, como una de las reglas de enrutamiento para enrutar las solicitudes atendidas por la pasarela. Cada referencia de pasarela debe coincidir con el patrón |
labels |
Opcional. Conjunto de etiquetas asociadas al recurso HttpRoute. Un objeto que contiene una lista de pares |
rules[] |
Obligatorio. Reglas que definen cómo se enruta y se gestiona el tráfico. Las reglas se compararán secuencialmente en función del valor de RouteMatch especificado en la regla. |
RouteRule
Especifica cómo se debe hacer coincidir el tráfico y cómo se debe enrutar cuando se encuentre una coincidencia.
Representación JSON |
---|
{ "matches": [ { object ( |
Campos | |
---|---|
matches[] |
Una lista de coincidencias define las condiciones que se usan para comparar la regla con las solicitudes HTTP entrantes. Cada coincidencia es independiente, es decir, esta regla se aplicará si se cumple CUALQUIERA de las coincidencias. Si no se especifica ningún campo de coincidencias, esta regla coincidirá con el tráfico de forma incondicional. Si quieres configurar una regla predeterminada, añade una regla sin coincidencias especificadas al final de la lista de reglas. |
action |
Regla detallada que define cómo enrutar el tráfico coincidente. |
RouteMatch
RouteMatch define las especificaciones que se usan para asociar solicitudes. Si se definen varios tipos de concordancia, este RouteMatch se corresponderá si se cumplen TODOS los tipos de concordancia.
Representación JSON |
---|
{ "ignoreCase": boolean, "headers": [ { object ( |
Campos | |
---|---|
ignoreCase |
Especifica si las coincidencias de prefixMatch y fullPathMatch distinguen entre mayúsculas y minúsculas. El valor predeterminado es false. |
headers[] |
Especifica una lista de encabezados de solicitud HTTP con los que se comparará. TODOS los encabezados proporcionados deben coincidir. |
queryParameters[] |
Especifica una lista de parámetros de consulta con los que se comparará. TODOS los parámetros de consulta deben coincidir. |
Campo de unión
|
|
fullPathMatch |
El valor de la ruta de la solicitud HTTP debe coincidir exactamente con este valor. Solo se debe usar una de las opciones fullPathMatch, prefixMatch o regexMatch. |
prefixMatch |
El valor de la ruta de la solicitud HTTP debe empezar por el prefijo especificado. El prefijo debe empezar por /. Solo se debe usar una de las opciones fullPathMatch, prefixMatch o regexMatch. |
regexMatch |
El valor de la ruta de la solicitud HTTP debe cumplir la expresión regular especificada por regexMatch después de quitar los parámetros de consulta y el ancla proporcionados con la URL original. Para consultar la gramática de las expresiones regulares, visita https://github.com/google/re2/wiki/Syntax. Solo se debe usar una de las opciones fullPathMatch, prefixMatch o regexMatch. |
HeaderMatch
Especifica cómo seleccionar una regla de ruta en función de los encabezados de solicitud HTTP.
Representación JSON |
---|
{ "header": string, "invertMatch": boolean, // Union field |
Campos | |
---|---|
header |
Nombre del encabezado HTTP con el que se debe cotejar. |
invertMatch |
Si se especifica, el resultado de la coincidencia se invertirá antes de comprobarse. El valor predeterminado es false. |
Campo de unión
|
|
exactMatch |
El valor del encabezado debe coincidir exactamente con el contenido de exactMatch. |
regexMatch |
El valor del encabezado debe coincidir con la expresión regular especificada en regexMatch. Para consultar la gramática de las expresiones regulares, visita https://github.com/google/re2/wiki/Syntax. |
prefixMatch |
El valor del encabezado debe empezar con el contenido de prefixMatch. |
presentMatch |
Debe haber un encabezado con el valor headerName. La coincidencia se produce independientemente de si el encabezado tiene un valor. |
suffixMatch |
El valor del encabezado debe terminar con el contenido de suffixMatch. |
rangeMatch |
Si se especifica, la regla coincidirá si el valor del encabezado de la solicitud está dentro del intervalo. |
IntegerRange
Representa un intervalo de valores enteros.
Representación JSON |
---|
{ "start": integer, "end": integer } |
Campos | |
---|---|
start |
Inicio del intervalo (inclusive) |
end |
Fin del intervalo (exclusivo) |
QueryParameterMatch
Especificaciones para que coincida un parámetro de consulta en la solicitud.
Representación JSON |
---|
{ "queryParameter": string, // Union field |
Campos | |
---|---|
queryParameter |
Nombre del parámetro de consulta que se va a buscar. |
Campo de unión
|
|
exactMatch |
El valor del parámetro de consulta debe coincidir exactamente con el contenido de exactMatch. Solo se debe definir una de las propiedades exactMatch, regexMatch o presentMatch. |
regexMatch |
El valor del parámetro de consulta debe coincidir con la expresión regular especificada por regexMatch. Para consultar la gramática de las expresiones regulares, visita https://github.com/google/re2/wiki/Syntax. Solo se debe definir una de las propiedades exactMatch, regexMatch o presentMatch. |
presentMatch |
Especifica que QueryParameterMatcher coincide si la solicitud contiene el parámetro de consulta, independientemente de si el parámetro tiene un valor o no. Solo se debe definir una de las propiedades exactMatch, regexMatch o presentMatch. |
RouteAction
Las especificaciones para enrutar el tráfico y aplicar las políticas asociadas.
Representación JSON |
---|
{ "destinations": [ { object ( |
Campos | |
---|---|
destinations[] |
El destino al que se debe reenviar el tráfico. |
redirect |
Si se define, la solicitud se dirige según lo configurado en este campo. |
faultInjectionPolicy |
Especificación de la inyección de fallos introducida en el tráfico para probar la resiliencia de los clientes ante los fallos del servicio de backend. Como parte de la inyección de errores, cuando los clientes envían solicitudes a un servicio backend, se pueden introducir retrasos en un porcentaje de las solicitudes antes de enviarlas al servicio backend. Del mismo modo, las solicitudes de los clientes se pueden anular en un porcentaje de las solicitudes. Los clientes configurados con una faultInjectionPolicy ignorarán timeout y retryPolicy. |
requestHeaderModifier |
Especificación para modificar los encabezados de una solicitud coincidente antes de entregarla al destino. Si se definen HeaderModifiers tanto en Destination como en RouteAction, se combinarán. Los conflictos entre ambos no se resolverán en la configuración. |
responseHeaderModifier |
Especificación para modificar los encabezados de una respuesta antes de enviarla al cliente. Si se definen HeaderModifiers tanto en Destination como en RouteAction, se combinarán. Los conflictos entre ambos no se resolverán en la configuración. |
urlRewrite |
La especificación de la URL de reescritura antes de reenviar las solicitudes al destino. |
timeout |
Especifica el tiempo de espera de la ruta seleccionada. El tiempo de espera se calcula desde el momento en que se ha procesado por completo la solicitud (es decir, el final de la secuencia) hasta que se ha procesado por completo la respuesta. El tiempo de espera incluye todos los reintentos. Duración en segundos con hasta nueve decimales, que termina con " |
retryPolicy |
Especifica la política de reintento asociada a esta ruta. |
requestMirrorPolicy |
Especifica la política sobre cómo se reflejan las solicitudes destinadas a la ruta en un destino reflejado independiente. El proxy no esperará a que responda el destino de sombra antes de devolver la respuesta. Antes de enviar tráfico al servicio de sombra, se añade el sufijo "-shadow" al encabezado Host/Authority. |
corsPolicy |
Especificación para permitir solicitudes entre orígenes del lado del cliente. |
statefulSessionAffinity |
Opcional. Especifica la afinidad de sesión con estado basada en cookies. |
directResponse |
Opcional. Objeto de respuesta HTTP estático que se devolverá independientemente de la solicitud. |
idleTimeout |
Opcional. Especifica el tiempo de espera de inactividad de la ruta seleccionada. El tiempo de espera de inactividad se define como el periodo en el que no se envían ni se reciben bytes en la conexión ascendente o descendente. Si no se establece, el tiempo de espera predeterminado es de 1 hora. Si se asigna el valor 0s, el tiempo de espera se inhabilitará. Duración en segundos con hasta nueve decimales, que termina con " |
Destino
Especificaciones de un destino al que se debe enrutar la solicitud.
Representación JSON |
---|
{ "serviceName": string, "weight": integer, "requestHeaderModifier": { object ( |
Campos | |
---|---|
serviceName |
URL de un BackendService al que dirigir el tráfico. |
weight |
Especifica la proporción de solicitudes reenviadas al backend al que hace referencia el campo serviceName. Se calcula de la siguiente manera: - peso/Suma(pesos de esta lista de destinos). En el caso de los valores distintos de cero, puede haber un valor épsilon con respecto a la proporción exacta definida aquí, en función de la precisión que admita una implementación. Si solo se especifica un serviceName y tiene un peso superior a 0, el 100% del tráfico se reenvía a ese backend. Si se especifica un peso para un nombre de servicio, se debe especificar para todos. Si no se especifica la participación porcentual de todos los servicios, el tráfico se distribuirá en proporciones iguales entre todos ellos. |
requestHeaderModifier |
Opcional. Especificación para modificar los encabezados de una solicitud coincidente antes de entregarla al destino. Si se definen HeaderModifiers tanto en Destination como en RouteAction, se combinarán. Los conflictos entre ambos no se resolverán en la configuración. |
responseHeaderModifier |
Opcional. Especificación para modificar los encabezados de una respuesta antes de enviarla al cliente. Si se definen HeaderModifiers tanto en Destination como en RouteAction, se combinarán. Los conflictos entre ambos no se resolverán en la configuración. |
HeaderModifier
Especificación para modificar el encabezado HTTP en la solicitud y la respuesta HTTP.
Representación JSON |
---|
{ "set": { string: string, ... }, "add": { string: string, ... }, "remove": [ string ] } |
Campos | |
---|---|
set |
Sobrescribe o sustituye por completo los encabezados con el mapa proporcionado, donde la clave es el nombre del encabezado y el valor es el valor del encabezado. Un objeto que contiene una lista de pares |
add |
Añade las cabeceras con el mapa proporcionado, donde la clave es el nombre de la cabecera y el valor es el valor de la cabecera. Un objeto que contiene una lista de pares |
remove[] |
Quita los encabezados (que coinciden con los nombres de los encabezados) especificados en la lista. |
Redirigir
Especificación para redirigir el tráfico.
Representación JSON |
---|
{
"hostRedirect": string,
"pathRedirect": string,
"prefixRewrite": string,
"responseCode": enum ( |
Campos | |
---|---|
hostRedirect |
El host que se usará en la respuesta de redirección en lugar del que se proporcionó en la solicitud. |
pathRedirect |
Ruta que se usará en la respuesta de redirección en lugar de la que se proporcionó en la solicitud. pathRedirect no se puede proporcionar junto con prefixRedirect. Proporcione solo una o ninguna. Si no se proporciona ninguno de los dos, se usará la ruta de la solicitud original para la redirección. |
prefixRewrite |
Indica que, durante la redirección, el prefijo (o la ruta) coincidente debe sustituirse por este valor. Esta opción permite que las URLs se creen de forma dinámica en función de la solicitud. |
responseCode |
El código de estado HTTP que se va a usar para la redirección. |
httpsRedirect |
Si se le asigna el valor true, el esquema de URL de la solicitud redirigida se define como https. Si se define como "false", el esquema de URL de la solicitud redirigida seguirá siendo el mismo que el de la solicitud. El valor predeterminado es "false". |
stripQuery |
Si se define como true, se elimina cualquier parte de consulta de la URL original antes de redirigir la solicitud. Si se le asigna el valor "false", se conserva la parte de la consulta de la URL original. El valor predeterminado es "false". |
portRedirect |
El puerto que se usará en la solicitud redirigida en lugar del que se proporcionó en la solicitud. |
ResponseCode
Código de respuesta HTTP admitido.
Enumeraciones | |
---|---|
RESPONSE_CODE_UNSPECIFIED |
Valor predeterminado |
MOVED_PERMANENTLY_DEFAULT |
Corresponde a 301. |
FOUND |
Corresponde a 302. |
SEE_OTHER |
Corresponde a 303. |
TEMPORARY_REDIRECT |
Corresponde a 307. En este caso, se conservará el método de solicitud. |
PERMANENT_REDIRECT |
Corresponde a 308. En este caso, se conservará el método de solicitud. |
FaultInjectionPolicy
La especificación de la inyección de errores introducida en el tráfico para probar la resiliencia de los clientes ante un fallo del servicio de destino. Como parte de la inyección de errores, cuando los clientes envían solicitudes a un destino, el proxy del cliente puede introducir retrasos en un porcentaje de las solicitudes antes de enviarlas al servicio de destino. Del mismo modo, el proxy del cliente puede anular un porcentaje de las solicitudes.
Representación JSON |
---|
{ "delay": { object ( |
Campos | |
---|---|
delay |
Especificación para inyectar latencia en las solicitudes de cliente. |
abort |
Especificación para cancelar solicitudes de clientes. |
Retraso
Especificación de cómo se retrasan las solicitudes del cliente como parte de la inyección de errores antes de enviarse a un destino.
Representación JSON |
---|
{ "fixedDelay": string, "percentage": integer } |
Campos | |
---|---|
fixedDelay |
Especifica un tiempo de espera fijo antes de reenviar la solicitud. Duración en segundos con hasta nueve decimales, que termina con " |
percentage |
El porcentaje del tráfico en el que se insertará el retraso. El valor debe estar comprendido entre [0 y 100]. |
Anular
Especificación de cómo se cancelan las solicitudes de cliente como parte de la inyección de errores antes de enviarse a un destino.
Representación JSON |
---|
{ "httpStatus": integer, "percentage": integer } |
Campos | |
---|---|
httpStatus |
El código de estado HTTP usado para cancelar la solicitud. El valor debe estar comprendido entre 200 y 599, ambos incluidos. |
percentage |
El porcentaje de tráfico que se va a anular. El valor debe estar comprendido entre [0 y 100]. |
URLRewrite
Especificación para modificar la URL de la solicitud antes de reenviarla al destino.
Representación JSON |
---|
{ "pathPrefixRewrite": string, "hostRewrite": string } |
Campos | |
---|---|
pathPrefixRewrite |
Antes de reenviar la solicitud al destino seleccionado, la parte coincidente de la ruta de la solicitud se sustituye por este valor. |
hostRewrite |
Antes de reenviar la solicitud al destino seleccionado, el encabezado Host de la solicitud se sustituye por este valor. |
RetryPolicy
Especificaciones de los reintentos.
Representación JSON |
---|
{ "retryConditions": [ string ], "numRetries": integer, "perTryTimeout": string } |
Campos | |
---|---|
retryConditions[] |
Especifica una o varias condiciones en las que se aplica esta política de reintentos. Los valores válidos son: 5xx: el proxy intentará volver a enviar la solicitud si el servicio de destino responde con un código de respuesta 5xx o si no responde en absoluto. Por ejemplo, si se desconecta, se restablece, se agota el tiempo de espera de lectura, se produce un error de conexión o se rechazan las secuencias. gateway-error: similar a 5xx, pero solo se aplica a los códigos de respuesta 502, 503 y 504. reset: el proxy intentará volver a conectarse si el servicio de destino no responde (desconexión, restablecimiento o tiempo de espera de lectura). connect-failure: el proxy volverá a intentar conectarse al destino si se produce un error, por ejemplo, si se agota el tiempo de espera de la conexión. retriable-4xx: el proxy volverá a intentar enviar solicitudes con códigos de respuesta 4xx que se puedan volver a intentar. Actualmente, el único error que se puede volver a intentar es el 409. refused-stream: el proxy volverá a intentarlo si el destino restablece el flujo con un código de error REFUSED_STREAM. Este tipo de restablecimiento indica que se puede volver a intentar. |
numRetries |
Especifica el número de reintentos permitidos. Este número debe ser mayor que 0. Si no se especifica, el valor predeterminado es 1. |
perTryTimeout |
Especifica un tiempo de espera distinto de cero por cada intento. Duración en segundos con hasta nueve decimales, que termina con " |
RequestMirrorPolicy
Especifica la política sobre cómo se reflejan las solicitudes en un servicio de destino reflejado independiente. El proxy no espera respuestas del servicio de sombra. Antes de enviar tráfico al servicio de sombra, se añade el sufijo "-shadow" al encabezado Host/Authority.
Representación JSON |
---|
{
"destination": {
object ( |
Campos | |
---|---|
destination |
El destino al que se reflejarán las solicitudes. Se ignorará la ponderación del destino. |
mirrorPercent |
Opcional. Porcentaje de solicitudes que se reflejan en el destino deseado. |
CorsPolicy
Especificación para permitir solicitudes entre orígenes del lado del cliente.
Representación JSON |
---|
{ "allowOrigins": [ string ], "allowOriginRegexes": [ string ], "allowMethods": [ string ], "allowHeaders": [ string ], "exposeHeaders": [ string ], "maxAge": string, "allowCredentials": boolean, "disabled": boolean } |
Campos | |
---|---|
allowOrigins[] |
Especifica la lista de orígenes que podrán hacer solicitudes CORS. Se permite un origen si coincide con un elemento de allowOrigins o con un elemento de allowOriginRegexes. |
allowOriginRegexes[] |
Especifica los patrones de expresiones regulares que coinciden con los orígenes permitidos. Para consultar la gramática de las expresiones regulares, visita https://github.com/google/re2/wiki/Syntax. |
allowMethods[] |
Especifica el contenido del encabezado Access-Control-Allow-Methods. |
allowHeaders[] |
Especifica el contenido del encabezado Access-Control-Allow-Headers. |
exposeHeaders[] |
Especifica el contenido del encabezado Access-Control-Expose-Headers. |
maxAge |
Especifica durante cuánto tiempo se puede almacenar en caché el resultado de una solicitud de comprobación previa en segundos. Esto se traduce en el encabezado Access-Control-Max-Age. |
allowCredentials |
En respuesta a una solicitud preflight, si se le asigna el valor true, se indica que la solicitud real puede incluir credenciales de usuario. Esto se traduce en el encabezado Access-Control-Allow-Credentials. El valor predeterminado es false. |
disabled |
Si es true, la política de CORS está inhabilitada. El valor predeterminado es "false", lo que indica que la política de CORS está en vigor. |
StatefulSessionAffinityPolicy
Especificación de la afinidad de sesión con estado basada en cookies, en la que el plano de datos proporciona una cookie de sesión con el nombre "GSSA" que codifica un host de destino específico. Cada solicitud que contenga esa cookie se dirigirá a ese host siempre que el host de destino siga activo y en buen estado.
La biblioteca de malla sin proxy de gRPC o el proxy sidecar gestionarán la cookie de sesión, pero el código de la aplicación cliente será el responsable de copiar la cookie de cada RPC de la sesión a la siguiente.
Representación JSON |
---|
{ "cookieTtl": string } |
Campos | |
---|---|
cookieTtl |
Obligatorio. El valor de TTL de la cookie del encabezado Set-Cookie generado por el plano de datos. La duración de la cookie puede ser un valor comprendido entre 1 y 86.400 segundos (24 horas), ambos incluidos. Duración en segundos con hasta nueve decimales, que termina con " |
HttpDirectResponse
Objeto de respuesta HTTP estático que se va a devolver.
Representación JSON |
---|
{ "status": integer, // Union field |
Campos | |
---|---|
status |
Obligatorio. Estado que se devuelve como parte de la respuesta HTTP. Debe ser un número entero positivo. |
Campo de unión HttpBody . Cuerpo que se devolverá como parte de la respuesta HTTP. HttpBody solo puede ser una de las siguientes cosas: |
|
stringBody |
Opcional. Cuerpo de la respuesta como una cadena. La longitud máxima del cuerpo es de 1024 caracteres. |
bytesBody |
Opcional. Cuerpo de la respuesta en bytes. El tamaño máximo del cuerpo es de 4096 B. Cadena codificada en base64. |
Métodos |
|
---|---|
|
Crea un nuevo HttpRoute en un proyecto y una ubicación determinados. |
|
Elimina un solo HttpRoute. |
|
Obtiene los detalles de un solo HttpRoute. |
|
Muestra los HttpRoute de un proyecto y una ubicación determinados. |
|
Actualiza los parámetros de un solo HttpRoute. |