REST Resource: projects.locations.tcpRoutes

Risorsa: TcpRoute

TcpRoute è la risorsa che definisce in che modo il traffico TCP deve essere indirizzato da una risorsa Mesh/Gateway.

Rappresentazione JSON
{
  "name": string,
  "selfLink": string,
  "createTime": string,
  "updateTime": string,
  "description": string,
  "rules": [
    {
      object (RouteRule)
    }
  ],
  "meshes": [
    string
  ],
  "gateways": [
    string
  ],
  "labels": {
    string: string,
    ...
  }
}
Campi
name

string

Obbligatorio. Nome della risorsa TcpRoute. Corrisponde al pattern projects/*/locations/global/tcpRoutes/tcp_route_name>.

createTime

string (Timestamp format)

Solo output. Timestamp di creazione della risorsa.

Un timestamp in formato "Zulu" UTC RFC3339, con risoluzione al nanosecondo e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

Solo output. Timestamp dell'aggiornamento della risorsa.

Un timestamp in formato "Zulu" UTC RFC3339, con risoluzione al nanosecondo e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

description

string

Facoltativo. Una descrizione in formato libero della risorsa. Lunghezza massima: 1024 caratteri.

rules[]

object (RouteRule)

Obbligatorio. Regole che definiscono come viene indirizzato e gestito il traffico. È necessario specificare almeno una RouteRule. Se sono presenti più regole, l'azione intrapresa sarà la prima regola corrispondente.

meshes[]

string

Facoltativo. Meshes definisce un elenco di mesh a cui è collegata questa risorsa TcpRoute, come una delle regole di routing per indirizzare le richieste gestite dal mesh.

Ogni riferimento al mesh deve corrispondere al pattern: projects/*/locations/global/meshes/<mesh_name>

Il mesh collegato deve essere di tipo SIDECAR

gateways[]

string

Facoltativo. Gateways definisce un elenco di gateway a cui è collegata questa risorsa TcpRoute, come una delle regole di routing per indirizzare le richieste gestite dal gateway.

Ogni riferimento al gateway deve corrispondere al pattern: projects/*/locations/global/gateways/<gateway_name>

labels

map (key: string, value: string)

Facoltativo. Insieme di tag di etichette associati alla risorsa TcpRoute.

Un oggetto contenente un elenco di coppie "key": value. Esempio: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

RouteRule

Specifica come trovare la corrispondenza del traffico e come indirizzarlo una volta trovata la corrispondenza.

Rappresentazione JSON
{
  "matches": [
    {
      object (RouteMatch)
    }
  ],
  "action": {
    object (RouteAction)
  }
}
Campi
matches[]

object (RouteMatch)

Facoltativo. RouteMatch definisce il predicato utilizzato per determinare le richieste corrispondenti a una determinata azione. Per la valutazione, i vari tipi di corrispondenza vengono combinati con l'operatore "OR". Se non viene specificato alcun campo routeMatch, questa regola abbinerà il traffico incondizionatamente.

action

object (RouteAction)

Obbligatorio. Regola dettagliata che definisce come indirizzare il traffico corrispondente.

RouteMatch

RouteMatch definisce il predicato utilizzato per determinare le richieste corrispondenti a una determinata azione. Per la valutazione, i vari tipi di corrispondenza vengono combinati con l'operatore "OR". Se non viene specificato alcun campo routeMatch, questa regola abbinerà il traffico incondizionatamente.

Rappresentazione JSON
{
  "address": string,
  "port": string
}
Campi
address

string

Obbligatorio. Deve essere specificato nel formato dell'intervallo CIDR. Un intervallo CIDR è costituito da un indirizzo IP e da una lunghezza del prefisso per costruire la subnet mask. Per impostazione predefinita, la lunghezza del prefisso è 32 (ovvero corrisponde a un singolo indirizzo IP). Sono supportati solo gli indirizzi IPV4. Esempi: "10.0.0.1" corrisponde a questo indirizzo IP esatto. "10.0.0.0/8" - corrisponde a qualsiasi indirizzo IP all'interno della subnet 10.0.0.0 e della maschera 255.255.255.0. "0.0.0.0/0" - corrisponde a qualsiasi indirizzo IP.

port

string

Obbligatorio. Specifica la porta di destinazione per la corrispondenza.

RouteAction

Le specifiche per il routing del traffico e l'applicazione delle policy associate.

Rappresentazione JSON
{
  "destinations": [
    {
      object (RouteDestination)
    }
  ],
  "originalDestination": boolean,
  "idleTimeout": string
}
Campi
destinations[]

object (RouteDestination)

Facoltativo. I servizi di destinazione a cui deve essere inoltrato il traffico. È necessario almeno un servizio di destinazione. È possibile impostare solo una delle destinazioni route o la destinazione originale.

originalDestination

boolean

Facoltativo. Se il valore è true, il router utilizzerà l'IP e la porta di destinazione della connessione originale come destinazione della richiesta. Il valore predefinito è false. È possibile impostare solo una delle destinazioni route o la destinazione originale.

idleTimeout

string (Duration format)

Facoltativo. Specifica il timeout di inattività per la route selezionata. Il timeout di inattività è definito come il periodo in cui non vengono inviati o ricevuti byte sulla connessione upstream o downstream. Se non viene impostato, il timeout di inattività predefinito è di 30 secondi. Se impostato su 0 secondi, il timeout verrà disattivato.

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s". Esempio: "3.5s".

RouteDestination

Descrivi la destinazione a cui indirizzare il traffico.

Rappresentazione JSON
{
  "serviceName": string,
  "weight": integer
}
Campi
serviceName

string

Obbligatorio. L'URL di un BackendService a cui indirizzare il traffico.

weight

integer

Facoltativo. Specifica la proporzione di richieste inoltrate al backend a cui fa riferimento il campo serviceName. Questo valore viene calcolato come: - ponderazione/somma(ponderazioni in questo elenco di destinazione). Per valori diversi da zero, potrebbe esserci un epsilon rispetto alla proporzione esatta definita qui, a seconda della precisione supportata dall'implementazione.

Se viene specificato un solo serviceName e la relativa ponderazione è maggiore di 0, il 100% del traffico viene inoltrato a quel backend.

Se vengono specificate delle ponderazioni per un nome di servizio, devono essere specificate per tutti.

Se le ponderazioni non vengono specificate per tutti i servizi, il traffico viene distribuito in proporzioni uguali tra tutti.

Metodi

create

Crea una nuova risorsa TcpRoute in un progetto e una località specifici.

delete

Elimina una singola risorsa TcpRoute.

get

Recupera i dettagli di una singola risorsa TcpRoute.

list

Elenca la risorsa TcpRoute in un progetto e una località specifici.

patch

Aggiorna i parametri di una singola risorsa TcpRoute.