- Recurso: GrpcRoute
- RouteRule
- RouteMatch
- MethodMatch
- Tipo
- HeaderMatch
- Tipo
- RouteAction
- Destino
- FaultInjectionPolicy
- Retraso
- Abortar
- RetryPolicy
- StatefulSessionAffinityPolicy
- Métodos
Recurso: GrpcRoute
GrpcRoute es el recurso que define cómo se enruta el tráfico de gRPC enrutado por un recurso Mesh o Gateway.
Representación JSON |
---|
{
"name": string,
"selfLink": string,
"createTime": string,
"updateTime": string,
"labels": {
string: string,
...
},
"description": string,
"hostnames": [
string
],
"meshes": [
string
],
"gateways": [
string
],
"rules": [
{
object ( |
Campos | |
---|---|
name |
Identificador. Nombre del recurso GrpcRoute. Coincide con el patrón |
selfLink |
Solo de salida. URL definida por el servidor de este recurso |
createTime |
Solo de salida. Marca de tiempo de creación del recurso. Usa RFC 3339, donde la salida generada siempre se normaliza con Z y usa 0, 3, 6 o 9 dígitos fraccionarios. También se aceptan otros desplazamientos distintos de "Z". Ejemplos: |
updateTime |
Solo de salida. Marca de tiempo de la última actualización del recurso. Usa RFC 3339, donde la salida generada siempre se normaliza con Z y usa 0, 3, 6 o 9 dígitos fraccionarios. También se aceptan otros desplazamientos distintos de "Z". Ejemplos: |
labels |
Opcional. Conjunto de etiquetas asociadas al recurso GrpcRoute. Un objeto que contiene una lista de pares |
description |
Opcional. Descripción de texto libre del recurso. La longitud máxima es de 1024 caracteres. |
hostnames[] |
Obligatorio. Nombres de host de servicio con un puerto opcional para el que esta ruta describe el tráfico. Formato: El nombre de host es el nombre de dominio completo de un host de red. Esto coincide con la definición de nombre de host de RFC 1123, con dos excepciones importantes: - 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 una pasarela 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 Si se especifica un puerto, los clientes de gRPC deben usar el URI del canal con el puerto para que coincida con esta regla (es decir, "xds:///service:123"). De lo contrario, deben proporcionar el URI sin un puerto (es decir, "xds:///service"). |
meshes[] |
Opcional. Meshes define una lista de mallas a las que se adjunta este GrpcRoute como una de las reglas de enrutamiento para enrutar las solicitudes que sirve la malla. Cada referencia de malla debe coincidir con el patrón: |
gateways[] |
Opcional. Gateways define una lista de pasarelas a las que se adjunta este GrpcRoute como una de las reglas de enrutamiento para enrutar las solicitudes que sirve la pasarela. Cada referencia de pasarela debe coincidir con el patrón |
rules[] |
Obligatorio. Lista de reglas detalladas que definen cómo enrutar el tráfico. En un solo GrpcRoute, se ejecutará el GrpcRoute.RouteAction asociado al primer GrpcRoute.RouteRule coincidente. Se debe proporcionar al menos una regla. |
RouteRule
Describe cómo enrutar el tráfico.
Representación JSON |
---|
{ "matches": [ { object ( |
Campos | |
---|---|
matches[] |
Opcional. Los matches definen las condiciones que se utilizan para comparar la regla con las solicitudes gRPC 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. |
action |
Obligatorio. Una regla detallada que define cómo enrutar el tráfico. Este campo es obligatorio. |
RouteMatch
Criterios de coincidencia del tráfico. Se considerará que una RouteMatch coincide cuando coincidan todos los campos proporcionados.
Representación JSON |
---|
{ "headers": [ { object ( |
Campos | |
---|---|
headers[] |
Opcional. Especifica una colección de encabezados que deben coincidir. |
method |
Opcional. Método gRPC con el que se establecerán coincidencias. Si este campo está vacío o se omite, se corresponderá con todos los métodos. |
MethodMatch
Especifica una coincidencia con un método.
Representación JSON |
---|
{
"type": enum ( |
Campos | |
---|---|
type |
Opcional. Especifica cómo se debe buscar el nombre. Si no se especifica ningún valor, se usa el valor predeterminado "EXACT". |
grpcService |
Obligatorio. Nombre del servicio con el que se va a comparar. Si no se especifica, se aplicará a todos los servicios. |
grpcMethod |
Obligatorio. Nombre del método con el que se va a comparar. Si no se especifica, se corresponderá con todos los métodos. |
caseSensitive |
Opcional. Especifica que las coincidencias distinguen entre mayúsculas y minúsculas. El valor predeterminado es true. caseSensitive no debe usarse con el tipo REGULAR_EXPRESSION. |
Tipo
El tipo de coincidencia.
Enumeraciones | |
---|---|
TYPE_UNSPECIFIED |
No especificado. |
EXACT |
Solo coincidirá con el nombre exacto proporcionado. |
REGULAR_EXPRESSION |
Interpreta grpcMethod y grpcService como expresiones regulares. Se admite la sintaxis RE2. |
HeaderMatch
Una coincidencia con una colección de encabezados.
Representación JSON |
---|
{
"type": enum ( |
Campos | |
---|---|
type |
Opcional. Especifica cómo se debe comparar el valor del encabezado. Si no se especifica, se usa el valor predeterminado EXACT. |
key |
Obligatorio. Es la clave del encabezado. |
value |
Obligatorio. Valor del encabezado. |
Tipo
El tipo de coincidencia.
Enumeraciones | |
---|---|
TYPE_UNSPECIFIED |
No especificado. |
EXACT |
Solo se mostrarán resultados que coincidan exactamente con el valor proporcionado. |
REGULAR_EXPRESSION |
Coincidirá con las rutas que se ajusten al prefijo especificado por el valor. Se admite la sintaxis RE2. |
RouteAction
Especifica cómo enrutar el tráfico coincidente.
Representación JSON |
---|
{ "destinations": [ { object ( |
Campos | |
---|---|
destinations[] |
Opcional. Los servicios de destino a los que se debe reenviar el tráfico. Si se especifican varios destinos, el tráfico se dividirá entre los servicios de backend según el campo de peso de estos destinos. |
faultInjectionPolicy |
Opcional. 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, se pueden introducir retrasos en un porcentaje de las solicitudes antes de enviarlas al servicio de destino. 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. |
timeout |
Opcional. 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 |
Opcional. Especifica la política de reintento asociada a esta ruta. |
statefulSessionAffinity |
Opcional. Especifica la afinidad de sesión con estado basada en cookies. |
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
El destino al que se dirigirá el tráfico.
Representación JSON |
---|
{ // Union field |
Campos | |
---|---|
Campo de unión destination_type . Especifica el tipo de destino al que se dirigirá el tráfico. destination_type solo puede ser una de las siguientes cosas: |
|
serviceName |
Obligatorio. La URL de un servicio de destino al que enrutar el tráfico. Debe hacer referencia a un BackendService o a un ServiceDirectoryService. |
weight |
Opcional. 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. |
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, se pueden introducir retrasos en un porcentaje de las solicitudes antes de enviarlas al servicio de destino. Del mismo modo, las solicitudes de los clientes se pueden anular en 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]. |
RetryPolicy
Especificaciones de los reintentos. Especifica una o varias condiciones en las que se aplica esta regla de reintento. Los valores válidos son estos:
Representación JSON |
---|
{ "retryConditions": [ string ], "numRetries": integer } |
Campos | |
---|---|
retryConditions[] |
|
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. |
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 " |
Métodos |
|
---|---|
|
Crea un nuevo GrpcRoute en un proyecto y una ubicación determinados. |
|
Elimina un único GrpcRoute. |
|
Obtiene los detalles de un solo GrpcRoute. |
|
Muestra los GrpcRoutes de un proyecto y una ubicación determinados. |
|
Actualiza los parámetros de un solo GrpcRoute. |
|
Aplica la política de control de acceso del recurso especificado. |
|
Devuelve los permisos que tiene una sobre el recurso especificado. |