- Recurso: GrpcRoute
- RouteRule
- RouteMatch
- MethodMatch
- Tipo
- HeaderMatch
- Tipo
- RouteAction
- Destino
- FaultInjectionPolicy
- Demora
- Anular
- RetryPolicy
- StatefulSessionAffinityPolicy
- Métodos
Recurso: GrpcRoute
GrpcRoute es el recurso que define cómo se enruta el tráfico de gRPC que se enruta por un recurso de malla o puerta de enlace.
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 |
Obligatorio. Nombre del recurso GrpcRoute. Coincide con el patrón |
selfLink |
Solo salida. URL definida por el servidor de este recurso |
createTime |
Solo salida. Marca de tiempo cuando se creó el recurso. Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: |
updateTime |
Solo salida. La marca de tiempo de la actualización del recurso. Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: |
labels |
Opcional. Conjunto de etiquetas de etiqueta asociadas con el recurso GrpcRoute. Un objeto que contiene una lista de pares |
description |
Opcional. Es una descripción de texto libre del recurso. La longitud máxima es de 1,024 caracteres. |
hostnames[] |
Obligatorio. Nombres de host del servicio con un puerto opcional para el que esta ruta describe el tráfico Formato: El nombre de host es el nombre de dominio completamente calificado de un host de red. Esto coincide con la definición RFC 1123 de un nombre de host, con 2 excepciones notables: - No se permiten IP. - Un nombre de host puede tener el prefijo 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 (p.ej., Ten en cuenta que, según RFC1035 y RFC1123, una etiqueta debe incluir caracteres alfanuméricos en minúscula o “-”, y debe comenzar y terminar con un carácter alfanumérico. No se permite ningún otro tipo de puntuación. Las rutas asociadas con una malla o puerta de enlace deben tener nombres de host únicos. Si intentas conectar varias rutas con nombres de host en conflicto, se rechazará la configuración. Por ejemplo, si bien es aceptable que las rutas para 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 entrega la malla. Cada referencia de malla debe coincidir con el patrón |
gateways[] |
Opcional. Las puertas de enlace definen una lista de puertas de enlace a las que se adjunta este GrpcRoute como una de las reglas de enrutamiento para enrutar las solicitudes que entrega la puerta de enlace. Cada referencia de puerta de enlace debe coincidir con el patrón |
rules[] |
Obligatorio. Una lista de reglas detalladas que definen cómo enrutar el tráfico. Dentro de un solo GrpcRoute, se ejecutará el GrpcRoute.RouteAction asociado con el primer GrpcRoute.RouteRule que coincide. Se debe proporcionar al menos una regla. |
RouteRule
Describe cómo enrutar el tráfico.
Representación JSON |
---|
{ "matches": [ { object ( |
Campos | |
---|---|
matches[] |
Opcional. Las coincidencias definen las condiciones que se usan para hacer coincidir la regla con las solicitudes de gRPC entrantes. Cada coincidencia es independiente, es decir, esta regla coincidirá si se cumple CUALQUIERA de las coincidencias. Si no se especifica un campo de coincidencias, esta regla coincidirá incondicionalmente con el tráfico. |
action |
Obligatorio. Una regla detallada que define cómo enrutar el tráfico. Este campo es obligatorio. |
RouteMatch
Criterios para el tráfico coincidente. Se considerará que una RouteMatch coincide cuando todos los campos proporcionados coinciden.
Representación JSON |
---|
{ "headers": [ { object ( |
Campos | |
---|---|
headers[] |
Opcional. Especifica un conjunto de encabezados que deben coincidir. |
method |
Opcional. Un método de gRPC para comparar. Si este campo está vacío o se omite, coincidirá con todos los métodos. |
MethodMatch
Especifica una coincidencia con un método.
Representación JSON |
---|
{
"type": enum ( |
Campos | |
---|---|
type |
Opcional. Especifica cómo hacer coincidir el nombre. Si no se especifica, se usa el valor predeterminado "EXACT". |
grpcService |
Obligatorio. Nombre del servicio con el que se debe establecer la coincidencia. Si no se especifica, coincidirá con todos los servicios. |
grpcMethod |
Obligatorio. Es el nombre del método con el que se debe establecer la coincidencia. Si no se especifica, coincidirá con todos los métodos. |
caseSensitive |
Opcional. Especifica que las coincidencias distinguen mayúsculas de minúsculas. El valor predeterminado es verdadero. La distinción entre mayúsculas y minúsculas no debe usarse con un tipo de REGULAR_ExpressION. |
Tipo
Es el tipo de coincidencia.
Enums | |
---|---|
TYPE_UNSPECIFIED |
Sin especificar. |
EXACT |
Solo coincidirá con el nombre exacto proporcionado. |
REGULAR_EXPRESSION |
Se interpretará grpcMethod y grpcService como regex. Se admite la sintaxis RE2. |
HeaderMatch
Es una coincidencia con una colección de encabezados.
Representación JSON |
---|
{
"type": enum ( |
Campos | |
---|---|
type |
Opcional. Especifica cómo hacer coincidir el valor del encabezado. Si no se especifica, se usa un valor predeterminado de EXACT. |
key |
Obligatorio. La clave del encabezado. |
value |
Obligatorio. El valor del encabezado. |
Tipo
Es el tipo de coincidencia.
Enums | |
---|---|
TYPE_UNSPECIFIED |
Sin especificar. |
EXACT |
Solo coincidirá con el valor exacto proporcionado. |
REGULAR_EXPRESSION |
Coincide con las rutas de acceso que cumplen con el 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 ingresada en el tráfico para probar la resiliencia de los clientes ante la falla del servicio de destino. Como parte de la inyección de errores, cuando los clientes envían solicitudes a un destino, se pueden producir retrasos en un porcentaje de solicitudes antes de enviarlas al servicio de destino. De manera similar, las solicitudes de los clientes pueden anularse para un porcentaje de solicitudes. Los clientes configurados con failedInjectionPolicy ignorarán timeout yRetryPolicy. |
timeout |
Opcional. Especifica el tiempo de espera para la ruta seleccionada. El tiempo de espera se calcula desde el momento en que la solicitud se procesa por completo (es decir, el final de la transmisión) hasta que la respuesta se procesa por completo. El tiempo de espera incluye todos los reintentos. Una duración en segundos con hasta nueve dígitos decimales, que terminan en “ |
retryPolicy |
Opcional. Especifica la política de reintentos asociada con esta ruta. |
statefulSessionAffinity |
Opcional. Especifica la afinidad de sesión con estado basada en cookies. |
idleTimeout |
Opcional. Especifica el tiempo de espera de inactividad para la ruta seleccionada. El tiempo de espera de inactividad se define como el período en el que no se enviaron ni recibieron bytes en la conexión ascendente o descendente. Si no la estableces, el tiempo de espera de inactividad predeterminado será de 1 hora. Si se configura en 0 s, se inhabilitará el tiempo de espera. Una duración en segundos con hasta nueve dígitos decimales, que terminan en “ |
Destino
El destino al que se enrutará el tráfico.
Representación JSON |
---|
{ // Union field |
Campos | |
---|---|
Campo de unión destination_type . Especifica el tipo de destino al que se enrutará el tráfico. destination_type puede ser solo uno de los siguientes: |
|
serviceName |
Obligatorio. La URL de un servicio de destino al que se enrutará el tráfico. Debe hacer referencia a BackendService o ServiceDirectoryService. |
weight |
Opcional. Especifica la proporción de solicitudes reenviadas al backend a las que hace referencia el campo serviceName. Esto se calcula de la siguiente manera: - peso/Suma(pesos de esta lista de destino). Para valores distintos de cero, puede haber algo de épsilon de la proporción exacta definida aquí según 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 especifican pesos para cualquier nombre de servicio, deben especificarse para todos. Si no se especifican los pesos para todos los servicios, el tráfico se distribuye en proporciones iguales para todos ellos. |
FaultInjectionPolicy
La especificación de la inyección de errores ingresada en el tráfico para probar la resiliencia de los clientes ante la falla del servicio de destino. Como parte de la inyección de errores, cuando los clientes envían solicitudes a un destino, se pueden producir retrasos en un porcentaje de solicitudes antes de enviarlas al servicio de destino. De manera similar, las solicitudes de los clientes pueden anularse para un porcentaje de solicitudes.
Representación JSON |
---|
{ "delay": { object ( |
Campos | |
---|---|
delay |
La especificación para insertar retrasos en las solicitudes del cliente. |
abort |
Especificación para anular las solicitudes del cliente. |
Retraso
Especificación de cómo se retrasan las solicitudes de los clientes como parte de la inserción de errores antes de enviarse a un destino.
Representación JSON |
---|
{ "fixedDelay": string, "percentage": integer } |
Campos | |
---|---|
fixedDelay |
Especifica un retraso fijo antes de reenviar la solicitud. Una duración en segundos con hasta nueve dígitos decimales, que terminan en “ |
percentage |
El porcentaje de tráfico en el que se insertará la demora. El valor debe estar entre [0, 100] |
Anular
Especificación de cómo se anulan las solicitudes de los clientes como parte de la inserción de errores antes de enviarse a un destino.
Representación JSON |
---|
{ "httpStatus": integer, "percentage": integer } |
Campos | |
---|---|
httpStatus |
El código de estado HTTP que se usa para anular la solicitud. Debe ser un valor entre 200 y 599, ambos incluidos. |
percentage |
El porcentaje de tráfico que se anulará. El valor debe estar entre [0, 100] |
RetryPolicy
Las especificaciones de los reintentos.
Representación JSON |
---|
{ "retryConditions": [ string ], "numRetries": integer } |
Campos | |
---|---|
retryConditions[] |
|
numRetries |
Especifica la cantidad permitida de reintentos. Este número debe ser mayor que 0. Si no se especifica, el valor predeterminado es 1. |
StatefulSessionAffinityPolicy
La especificación para la afinidad de sesión con estado basada en cookies en la que el plano de fecha proporciona una “cookie de sesión” con el nombre “GSSA” que codifica un host de destino específico y cada solicitud que contenga esa cookie se dirigirá a ese host siempre que el host de destino esté activo y en buen estado.
La biblioteca de malla sin proxy de gRPC o el proxy de sidecar administrarán la cookie de sesión, pero el código de la aplicación cliente es 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 las cookies para el encabezado Set-Cookie que genera el plano de datos. La vida útil de la cookie puede establecerse en un valor de 1 a 86,400 segundos (24 horas) inclusive. Una duración en segundos con hasta nueve dígitos decimales, que terminan en “ |
Métodos |
|
---|---|
|
Crea un GrpcRoute nuevo en un proyecto y una ubicación determinados. |
|
Borra un solo GrpcRoute. |
|
Obtiene detalles de un solo GrpcRoute. |
|
Permite obtener la política de control de acceso de un recurso. |
|
Muestra una lista de GrpcRoutes en un proyecto y una ubicación determinados. |
|
Actualiza los parámetros de un solo GrpcRoute. |
|
Permite configurar la política de control de acceso en el recurso especificado. |
|
Permite mostrar los permisos que tiene un emisor para un recurso específico. |