- Recurso: GrpcRoute
- RouteRule
- RouteMatch
- MethodMatch
- Tipo
- HeaderMatch
- Tipo
- RouteAction
- Destino
- FaultInjectionPolicy
- Atraso
- Abort
- RetryPolicy
- StatefulSessionAffinityPolicy
- Métodos
Recurso: GrpcRoute
GrpcRoute é o recurso que define como o tráfego gRPC roteado por um recurso Mesh ou Gateway é roteado.
Representação 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. Nome do recurso GrpcRoute. Ele corresponde ao padrão |
selfLink |
Apenas saída. URL definido pelo servidor deste recurso. |
createTime |
Apenas saída. O carimbo de data/hora em que o recurso foi criado. Usa RFC 3339, em que a saída gerada é sempre normalizada em Z e usa 0, 3, 6 ou 9 dígitos fracionários. Outros ajustes também são aceitos. Por exemplo, |
updateTime |
Apenas saída. O carimbo de data/hora em que o recurso foi atualizado. Usa RFC 3339, em que a saída gerada é sempre normalizada em Z e usa 0, 3, 6 ou 9 dígitos fracionários. Outros ajustes também são aceitos. Por exemplo, |
labels |
Opcional. Conjunto de tags de rótulo associadas ao recurso GrpcRoute. Um objeto com uma lista de pares |
description |
Opcional. Uma descrição de texto livre do recurso. Comprimento máximo de 1.024 caracteres. |
hostnames[] |
Obrigatório. Nomes de host de serviço com uma porta opcional para a qual esta rota descreve o tráfego. Formato: O nome do host é o nome de domínio totalmente qualificado de um host de rede. Isso corresponde à definição RFC 1123 de um nome de host com duas exceções importantes: - IPs não são permitidos. - Um nome de host pode ter um prefixo com um rótulo curinga ( O nome do host pode ser "preciso", que é um nome de domínio sem o ponto final de um host de rede (por exemplo, De acordo com RFC1035 e RFC1123, um rótulo precisa conter caracteres alfanuméricos minúsculos ou "-" e começar e terminar com um caractere alfanumérico. Nenhum outro tipo de pontuação é permitido. As rotas associadas a uma malha ou gateway precisam ter nomes de host exclusivos. Se você tentar anexar várias rotas com nomes de host conflitantes, a configuração será rejeitada. Por exemplo, embora seja aceitável que rotas para os nomes de host Se uma porta for especificada, os clientes gRPC precisarão usar o URI do canal com a porta para corresponder a essa regra (por exemplo, "xds:///service:123"). Caso contrário, eles precisarão fornecer o URI sem uma porta (por exemplo, "xds:///service"). |
meshes[] |
Opcional. As malhas definem uma lista de malhas a que essa GrpcRoute 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: |
gateways[] |
Opcional. "gateways" define uma lista de gateways a que esse GrpcRoute está anexado, como uma das regras de roteamento para rotear as solicitações atendidas pelo gateway. Cada referência de gateway precisa corresponder ao padrão: |
rules[] |
Obrigatório. Uma lista de regras detalhadas que definem como rotear o tráfego. Em uma única GrpcRoute, a GrpcRoute.RouteAction associada à primeira GrpcRoute.RouteRule correspondente será executada. É necessário fornecer pelo menos uma regra. |
RouteRule
Descreve como rotear o tráfego.
Representação JSON |
---|
{ "matches": [ { object ( |
Campos | |
---|---|
matches[] |
Opcional. As correspondências definem as condições usadas para corresponder a regra com as solicitações gRPC recebidas. Cada correspondência é independente. Ou seja, essa regra será correspondida se QUALQUER UMA das correspondências for atendida. Se nenhum campo de correspondências for especificado, essa regra vai corresponder incondicionalmente ao tráfego. |
action |
Obrigatório. Uma regra detalhada que define como rotear o tráfego. Este campo é obrigatório. |
RouteMatch
Critérios para correspondência de tráfego. Uma RouteMatch será considerada uma correspondência quando todos os campos fornecidos forem iguais.
Representação JSON |
---|
{ "headers": [ { object ( |
Campos | |
---|---|
headers[] |
Opcional. Especifica uma coleção de cabeçalhos para corresponder. |
method |
Opcional. Um método gRPC para correspondência. Se este campo estiver vazio ou for omitido, todos os métodos serão correspondentes. |
MethodMatch
Especifica uma correspondência com um método.
Representação JSON |
---|
{
"type": enum ( |
Campos | |
---|---|
type |
Opcional. Especifica como fazer a correspondência com o nome. Se não for especificado, o valor padrão "EXACT" será usado. |
grpcService |
Obrigatório. Nome do serviço para correspondência. Se não for especificado, vai corresponder a todos os serviços. |
grpcMethod |
Obrigatório. Nome do método a ser correspondido. Se não for especificado, vai corresponder a todos os métodos. |
caseSensitive |
Opcional. Especifica que as correspondências diferenciam maiúsculas de minúsculas. O valor padrão é "true". "caseSensitive" não pode ser usado com um tipo de REGULAR_EXPRESSION. |
Tipo
O tipo de correspondência.
Enums | |
---|---|
TYPE_UNSPECIFIED |
Não especificado. |
EXACT |
Só vai corresponder ao nome exato fornecido. |
REGULAR_EXPRESSION |
Vai interpretar grpcMethod e grpcService como expressões regulares. A sintaxe RE2 é aceita. |
HeaderMatch
Uma correspondência com uma coleção de cabeçalhos.
Representação JSON |
---|
{
"type": enum ( |
Campos | |
---|---|
type |
Opcional. Especifica como fazer a correspondência com o valor do cabeçalho. Se não for especificado, o valor padrão "EXACT" será usado. |
key |
Obrigatório. A chave do cabeçalho. |
value |
Obrigatório. O valor do cabeçalho. |
Tipo
O tipo de correspondência.
Enums | |
---|---|
TYPE_UNSPECIFIED |
Não especificado. |
EXACT |
Só vai corresponder ao valor exato fornecido. |
REGULAR_EXPRESSION |
Vai corresponder a caminhos que seguem o prefixo especificado pelo valor. A sintaxe RE2 é aceita. |
RouteAction
Especifica como rotear o tráfego correspondente.
Representação JSON |
---|
{ "destinations": [ { object ( |
Campos | |
---|---|
destinations[] |
Opcional. Os serviços de destino para os quais o tráfego deve ser encaminhado. Se vários destinos forem especificados, o tráfego será dividido entre os serviços de back-end de acordo com o campo "peso" desses destinos. |
faultInjectionPolicy |
Opcional. A especificação da injeção de falhas introduzida no tráfego para testar a resiliência dos clientes a falhas no serviço de destino. Como parte da injeção de falhas, quando os clientes enviam solicitações a um destino, atrasos podem ser introduzidos em uma porcentagem de solicitações antes de enviá-las ao serviço de destino. Da mesma forma, as solicitações dos clientes podem ser canceladas por uma porcentagem delas. timeout e retryPolicy serão ignorados por clientes configurados com uma faultInjectionPolicy |
timeout |
Opcional. Especifica o tempo limite da rota selecionada. O tempo limite é calculado a partir do momento em que a solicitação é totalmente processada (ou seja, o fim do fluxo) até que a resposta seja totalmente processada. O tempo limite inclui todas as novas tentativas. Duração em segundos com até nove dígitos fracionários, terminando em " |
retryPolicy |
Opcional. Especifica a política de repetição associada a essa rota. |
statefulSessionAffinity |
Opcional. Especifica afinidade da sessão com estado baseada em cookies. |
idleTimeout |
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 uma hora. Se for definido como 0s, o tempo limite será desativado. Duração em segundos com até nove dígitos fracionários, terminando em " |
Destino
O destino para onde o tráfego será encaminhado.
Representação JSON |
---|
{ // Union field |
Campos | |
---|---|
Campo de união destination_type . Especifica o tipo de destino para onde o tráfego será encaminhado. destination_type pode ser apenas de um dos tipos a seguir: |
|
serviceName |
Obrigatório. O URL de um serviço de destino para onde o tráfego será encaminhado. Precisa se referir a um BackendService ou ServiceDirectoryService. |
weight |
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 destinos). Para valores diferentes de zero, pode haver um epsilon da proporção exata definida aqui, dependendo da precisão que uma implementação oferece. Se apenas um serviceName for especificado e tiver um peso maior que 0, 100% do tráfego será encaminhado para esse back-end. Se pesos forem especificados para um nome de serviço, eles precisarão ser especificados para todos. 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. |
FaultInjectionPolicy
A especificação da injeção de falhas introduzida no tráfego para testar a resiliência dos clientes a falhas no serviço de destino. Como parte da injeção de falhas, quando os clientes enviam solicitações a um destino, atrasos podem ser introduzidos em uma porcentagem de solicitações antes de enviá-las ao serviço de destino. Da mesma forma, as solicitações dos clientes podem ser canceladas por uma porcentagem delas.
Representação JSON |
---|
{ "delay": { object ( |
Campos | |
---|---|
delay |
A especificação para injetar atraso em solicitações do cliente. |
abort |
A especificação para cancelar solicitações do cliente. |
Atraso
Especificação de como as solicitações do cliente são atrasadas como parte da injeção de falhas antes de serem enviadas a um destino.
Representação JSON |
---|
{ "fixedDelay": string, "percentage": integer } |
Campos | |
---|---|
fixedDelay |
Especifica um atraso fixo antes de encaminhar a solicitação. Duração em segundos com até nove dígitos fracionários, terminando em " |
percentage |
A porcentagem de tráfego em que o atraso será injetado. O valor precisa estar entre [0, 100] |
Cancelar
Especificação de como as solicitações do cliente são canceladas como parte da injeção de falhas antes de serem enviadas a um destino.
Representação JSON |
---|
{ "httpStatus": integer, "percentage": integer } |
Campos | |
---|---|
httpStatus |
O código de status HTTP usado para cancelar a solicitação. O valor precisa estar entre 200 e 599, inclusive. |
percentage |
A porcentagem de tráfego que será cancelada. O valor precisa estar entre [0, 100] |
RetryPolicy
As especificações para novas tentativas. Especifica uma ou mais condições para as quais essa regra de nova tentativa se aplica. Os valores válidos são:
Representação JSON |
---|
{ "retryConditions": [ string ], "numRetries": integer } |
Campos | |
---|---|
retryConditions[] |
|
numRetries |
Especifica o número permitido de novas tentativas. Esse número precisa ser maior que 0. Se não for especificado, o padrão será 1. |
StatefulSessionAffinityPolicy
A especificação para afinidade da sessão com estado baseada em cookies em que o plano de dados fornece um "cookie de sessão" com o nome "GSSA", que codifica um host de destino específico. Cada solicitação que contém esse cookie é direcionada a esse host enquanto ele permanece ativo e íntegro.
A biblioteca de malha sem proxy do gRPC ou o proxy sidecar gerencia o cookie de sessão, mas o código do aplicativo cliente é responsável por copiar o cookie de cada RPC na sessão para a próxima.
Representação JSON |
---|
{ "cookieTtl": string } |
Campos | |
---|---|
cookieTtl |
Obrigatório. O valor de TTL do cookie para o cabeçalho "Set-Cookie" gerado pelo plano de dados. A vida útil do cookie pode ser definida como um valor de 1 a 86.400 segundos (24 horas). Duração em segundos com até nove dígitos fracionários, terminando em " |
Métodos |
|
---|---|
|
Cria uma nova GrpcRoute em um determinado projeto e local. |
|
Exclui um único GrpcRoute. |
|
Recebe detalhes de um único GrpcRoute. |
|
Busca a política de controle de acesso de um recurso. |
|
Lista GrpcRoutes em um determinado projeto e local. |
|
Atualiza os parâmetros de uma única GrpcRoute. |
|
Define a política de controle de acesso no recurso especificado. |
|
Retorna permissões do autor da chamada no recurso especificado. |