REST Resource: projects.locations.tcpRoutes

Recurso: TcpRoute

O TcpRoute é o recurso que define como o tráfego TCP deve ser roteado por um recurso Mesh/Gateway.

Representação JSON
{
  "name": string,
  "selfLink": string,
  "createTime": string,
  "updateTime": string,
  "description": string,
  "rules": [
    {
      object (RouteRule)
    }
  ],
  "meshes": [
    string
  ],
  "gateways": [
    string
  ],
  "labels": {
    string: string,
    ...
  }
}
Campos
name

string

Obrigatório. Nome do recurso TcpRoute. Ele corresponde ao padrão projects/*/locations/global/tcpRoutes/tcp_route_name>.

createTime

string (Timestamp format)

Apenas saída. O carimbo de data/hora em que o recurso foi criado.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

Apenas saída. O carimbo de data/hora em que o recurso foi atualizado.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

description

string

Opcional. Uma descrição de texto livre do recurso. Comprimento máximo de 1.024 caracteres.

rules[]

object (RouteRule)

Obrigatório. Regras que definem como o tráfego é roteado e processado. É necessário fornecer pelo menos uma RouteRule. Se houver várias regras, a ação realizada será a primeira regra a ser correspondida.

meshes[]

string

Opcional. As malhas definem uma lista de malhas a que essa TcpRoute está anexada, como uma das regras de roteamento para rotear as solicitações atendidas pela malha.

Cada referência de malha precisa corresponder ao padrão: projects/*/locations/global/meshes/<mesh_name>

A malha anexada deve ser do tipo SIDECAR

gateways[]

string

Opcional. Gateways define uma lista de gateways a que o TcpRoute está anexado, como uma das regras de roteamento para encaminhar as solicitações enviadas pelo gateway.

Cada referência de gateway precisa corresponder ao padrão: projects/*/locations/global/gateways/<gateway_name>

labels

map (key: string, value: string)

Opcional. Conjunto de tags de rótulo associadas ao recurso TcpRoute.

Um objeto com uma lista de pares "key": value. Exemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

RouteRule

Especifica como corresponder e rotear o tráfego quando ele for correspondido.

Representação JSON
{
  "matches": [
    {
      object (RouteMatch)
    }
  ],
  "action": {
    object (RouteAction)
  }
}
Campos
matches[]

object (RouteMatch)

Opcional. O RouteMatch define o predicado usado para corresponder solicitações a uma determinada ação. Vários tipos de correspondência recebem o operador "OR" para avaliação. Se nenhum campo de routeMatch for especificado, essa regra vai corresponder ao tráfego de forma incondicional.

action

object (RouteAction)

Obrigatório. A regra detalhada que define como rotear o tráfego correspondente.

RouteMatch

O RouteMatch define o predicado usado para corresponder solicitações a uma determinada ação. Vários tipos de correspondência são "OU" para avaliação. Se nenhum campo "routeMatch" for especificado, a regra corresponderá o tráfego incondicionalmente.

Representação JSON
{
  "address": string,
  "port": string
}
Campos
address

string

Obrigatório. Precisa ser especificado no formato de intervalo CIDR. Um intervalo CIDR consiste em um endereço IP e um tamanho de prefixo para criar a máscara de sub-rede. Por padrão, o comprimento do prefixo é 32 (ou seja, corresponde a um único endereço IP). Somente endereços IPV4 são aceitos. Exemplos: "10.0.0.1" - corresponde ao endereço IP exato. "10.0.0.0/8" corresponde a qualquer endereço IP na sub-rede 10.0.0.0 e na máscara 255.255.255.0. "0.0.0.0/0": corresponde a qualquer endereço IP.

port

string

Obrigatório. Especifica a porta de destino a ser usada.

RouteAction

As especificações para rotear o tráfego e aplicar políticas associadas.

Representação JSON
{
  "destinations": [
    {
      object (RouteDestination)
    }
  ],
  "originalDestination": boolean,
  "idleTimeout": string
}
Campos
destinations[]

object (RouteDestination)

Opcional. Os serviços de destino para os quais o tráfego precisa ser encaminhado. Pelo menos um serviço de destino é necessário. Só é possível definir um dos destinos do trajeto ou original.

originalDestination

boolean

Opcional. Se verdadeiro, o roteador usa o IP de destino e a porta da conexão original como destino da solicitação. O padrão é "false". Somente um dos destinos da rota ou o destino original pode ser definido.

idleTimeout

string (Duration format)

Opcional. Especifica o tempo limite de inatividade da rota selecionada. O tempo limite de inatividade é definido como o período em que não há bytes enviados ou recebidos na conexão upstream ou downstream. Se não for definido, o tempo limite de inatividade padrão será de 30 segundos. Se definido como 0s, o tempo limite será desativado.

Duração em segundos com até nove dígitos fracionários, terminando em "s". Exemplo: "3.5s".

RouteDestination

Defina o destino para onde o tráfego será roteado.

Representação JSON
{
  "serviceName": string,
  "weight": integer
}
Campos
serviceName

string

Obrigatório. O URL de um BackendService para encaminhar o tráfego.

weight

integer

Opcional. Especifica a proporção de solicitações encaminhadas ao back-end referenciado pelo campo serviceName. Isso é calculado como: - peso/Soma(pesos nesta lista de destino). Para valores diferentes de zero, pode haver um valor epsilon da proporção exata definida aqui, dependendo da precisão com que uma implementação é compatível.

Se apenas um serviceName for especificado e tiver um peso maior que 0, 100% do tráfego será encaminhado para esse back-end.

Se os pesos forem especificados para qualquer nome de serviço, eles precisarão ser especificados para todos eles.

Se os pesos não forem especificados para todos os serviços, o tráfego será distribuído em proporções iguais para todos eles.

Métodos

create

Cria uma nova TcpRoute em um determinado projeto e local.

delete

Exclui um único TcpRoute.

get

Recebe detalhes de uma única TcpRoute.

list

Lista o TcpRoute em um determinado projeto e local.

patch

Atualiza os parâmetros de um único TcpRoute.