REST Resource: projects.locations.tcpRoutes

Recurso: TcpRoute

TcpRoute es el recurso que define cómo debe enrutar el tráfico TCP un recurso Mesh o Gateway.

Representación JSON
{
  "name": string,
  "selfLink": string,
  "createTime": string,
  "updateTime": string,
  "description": string,
  "rules": [
    {
      object (RouteRule)
    }
  ],
  "meshes": [
    string
  ],
  "gateways": [
    string
  ],
  "labels": {
    string: string,
    ...
  }
}
Campos
name

string

Identificador. Nombre del recurso TcpRoute. Coincide con el patrón projects/*/locations/global/tcpRoutes/tcp_route_name>.

createTime

string (Timestamp format)

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

updateTime

string (Timestamp format)

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

description

string

Opcional. Descripción de texto libre del recurso. La longitud máxima es de 1024 caracteres.

rules[]

object (RouteRule)

Obligatorio. Reglas que definen cómo se enruta y se gestiona el tráfico. Se debe proporcionar al menos un RouteRule. Si hay varias reglas, se aplicará la primera que coincida.

meshes[]

string

Opcional. Meshes define una lista de mallas a las que se adjunta este TcpRoute 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: projects/*/locations/global/meshes/<mesh_name>

El archivo Mesh adjunto debe ser de tipo SIDECAR.

gateways[]

string

Opcional. Gateways define una lista de pasarelas a las que está asociada esta TcpRoute 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 projects/*/locations/global/gateways/<gateway_name>.

labels

map (key: string, value: string)

Opcional. Conjunto de etiquetas asociadas al recurso TcpRoute.

Un objeto que contiene una lista de pares "key": value. Ejemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }

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 (RouteMatch)
    }
  ],
  "action": {
    object (RouteAction)
  }
}
Campos
matches[]

object (RouteMatch)

Opcional. RouteMatch define el predicado que se usa para asociar solicitudes a una acción determinada. Para la evaluación, se aplica el operador lógico "O" a varios tipos de concordancia. Si no se especifica ningún campo routeMatch, esta regla coincidirá incondicionalmente con el tráfico.

action

object (RouteAction)

Obligatorio. Regla detallada que define cómo enrutar el tráfico coincidente.

RouteMatch

RouteMatch define el predicado que se usa para asociar solicitudes a una acción determinada. Para la evaluación, se aplica el operador lógico "O" a varios tipos de concordancia. Si no se especifica ningún campo routeMatch, esta regla coincidirá incondicionalmente con el tráfico.

Representación JSON
{
  "address": string,
  "port": string
}
Campos
address

string

Obligatorio. Debe especificarse en formato de intervalo CIDR. Un intervalo CIDR consta de una dirección IP y una longitud de prefijo para crear la máscara de subred. De forma predeterminada, la longitud del prefijo es 32 (es decir, coincide con una sola dirección IP). Solo se admiten direcciones IPv4. Ejemplos: "10.0.0.1" coincide con esta dirección IP exacta. "10.0.0.0/8": coincide con cualquier dirección IP de la subred 10.0.0.0 y la máscara 255.255.255.0. "0.0.0.0/0": coincide con cualquier dirección IP.

port

string

Obligatorio. Especifica el puerto de destino con el que se va a comparar.

RouteAction

Las especificaciones para enrutar el tráfico y aplicar las políticas asociadas.

Representación JSON
{
  "destinations": [
    {
      object (RouteDestination)
    }
  ],
  "originalDestination": boolean,
  "idleTimeout": string
}
Campos
destinations[]

object (RouteDestination)

Opcional. Los servicios de destino a los que se debe reenviar el tráfico. Es obligatorio indicar al menos un servicio de destino. Solo se puede definir el destino de la ruta o el destino original.

originalDestination

boolean

Opcional. Si es true, Router usará la IP y el puerto de destino de la conexión original como destino de la solicitud. El valor predeterminado es "false". Solo se puede definir uno de los destinos de la ruta o el destino original.

idleTimeout

string (Duration format)

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 define, el tiempo de espera predeterminado es de 30 segundos. Si se asigna el valor 0s, el tiempo de espera se inhabilitará.

Duración en segundos con hasta nueve decimales, que termina con "s". Por ejemplo: "3.5s".

RouteDestination

Describe el destino al que se debe dirigir el tráfico.

Representación JSON
{
  "serviceName": string,
  "weight": integer
}
Campos
serviceName

string

Obligatorio. URL de un BackendService al que dirigir el tráfico.

weight

integer

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.

Métodos

create

Crea un nuevo TcpRoute en un proyecto y una ubicación determinados.

delete

Elimina un único TcpRoute.

get

Obtiene los detalles de un solo TcpRoute.

list

Muestra los TcpRoute de un proyecto y una ubicación determinados.

patch

Actualiza los parámetros de un solo TcpRoute.

setIamPolicy

Aplica la política de control de acceso del recurso especificado.

testIamPermissions

Devuelve los permisos que tiene una sobre el recurso especificado.