- Recurso: GrpcRoute
- RouteRule
- RouteMatch
- MethodMatch
- Tipo
- HeaderMatch
- Tipo
- RouteAction
- Destino
- FaultInjectionPolicy
- Atraso
- Abortar
- RetryPolicy
- StatefulSessionAffinityPolicy
- Métodos
Recurso: GrpcRoute
GrpcRoute é o recurso que define como o tráfego gRPC encaminhado por um recurso de malha ou gateway é encaminhado.
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 |
Obrigatório. Nome do recurso GrpcRoute. Corresponde ao padrão |
selfLink |
Apenas saída. URL definido pelo servidor deste recurso |
createTime |
Apenas saída. A data/hora em que o recurso foi criado. Uma data/hora no formato "Zulu" UTC RFC3339, com resolução de nanosegundos e até nove dígitos fracionários. Exemplos: |
updateTime |
Apenas saída. A data/hora em que o recurso foi atualizado. Uma data/hora no formato "Zulu" UTC RFC3339, com resolução de nanosegundos e até nove dígitos fracionários. Exemplos: |
labels |
Opcional. Conjunto de etiquetas associadas ao recurso GrpcRoute. Um objeto que contém uma lista de pares |
description |
Opcional. Uma descrição de texto livre do recurso. Comprimento máximo de 1024 carateres. |
hostnames[] |
Obrigatório. Nomes de anfitriões de serviços com uma porta opcional para a qual esta rota descreve o tráfego. Formato: O nome do anfitrião é o nome do domínio totalmente qualificado de um anfitrião de rede. Isto corresponde à definição RFC 1123 de um nome de anfitrião com 2 exceções notáveis: - Os IPs não são permitidos. – Um nome de anfitrião pode ser precedido de uma etiqueta de caráter universal ( O nome do anfitrião pode ser "preciso", que é um nome de domínio sem o ponto final de um anfitrião de rede (por exemplo, Tenha em atenção que, de acordo com a RFC1035 e a RFC1123, uma etiqueta tem de consistir em carateres alfanuméricos em minúsculas ou "-" e tem de começar e terminar com um caráter alfanumérico. Não é permitida outra pontuação. As rotas associadas a uma malha ou um gateway têm de ter nomes de anfitrião exclusivos. Se tentar anexar várias rotas com nomes de anfitrião em conflito, a configuração é rejeitada. Por exemplo, embora seja aceitável que os trajetos para os nomes de anfitrião Se for especificada uma porta, os clientes gRPC têm de usar o URI do canal com a porta para corresponder a esta regra (ou seja, "xds:///service:123"). Caso contrário, têm de fornecer o URI sem uma porta (ou seja, "xds:///service"). |
meshes[] |
Opcional. Meshes define uma lista de malhas às quais esta GrpcRoute está anexada, como uma das regras de encaminhamento para encaminhar os pedidos processados pela malha. Cada referência de malha deve corresponder ao padrão: |
gateways[] |
Opcional. Gateways define uma lista de gateways aos quais esta GrpcRoute está anexada, como uma das regras de encaminhamento para encaminhar os pedidos processados pelo gateway. Cada referência de gateway deve corresponder ao padrão: |
rules[] |
Obrigatório. Uma lista de regras detalhadas que definem como encaminhar o tráfego. Num único GrpcRoute, o GrpcRoute.RouteAction associado ao primeiro GrpcRoute.RouteRule correspondente é executado. Tem de fornecer, pelo menos, uma regra. |
RouteRule
Descreve como encaminhar o tráfego.
Representação JSON |
---|
{ "matches": [ { object ( |
Campos | |
---|---|
matches[] |
Opcional. As correspondências definem as condições usadas para fazer corresponder a regra com os pedidos gRPC recebidos. Cada correspondência é independente, ou seja, esta regra vai ter correspondência se QUALQUER uma das correspondências for satisfeita. Se não for especificado nenhum campo de correspondências, esta regra vai corresponder incondicionalmente ao tráfego. |
action |
Obrigatório. Uma regra detalhada que define como encaminhar o tráfego. Este campo é obrigatório. |
RouteMatch
Critérios para fazer corresponder o tráfego. Uma RouteMatch é considerada uma correspondência quando todos os campos fornecidos correspondem.
Representação JSON |
---|
{ "headers": [ { object ( |
Campos | |
---|---|
headers[] |
Opcional. Especifica uma coleção de cabeçalhos a corresponder. |
method |
Opcional. Um método gRPC para fazer a correspondência. Se este campo estiver vazio ou for omitido, corresponde a todos os métodos. |
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, é usado um valor predefinido de "EXACT". |
grpcService |
Obrigatório. Nome do serviço a comparar. Se não for especificado, corresponde a todos os serviços. |
grpcMethod |
Obrigatório. Nome do método a comparar. Se não for especificado, corresponde a todos os métodos. |
caseSensitive |
Opcional. Especifica que as correspondências são sensíveis a maiúsculas e minúsculas. O valor predefinido é verdadeiro. caseSensitive não pode ser usado com um tipo de REGULAR_EXPRESSION. |
Tipo
O tipo de correspondência.
Enumerações | |
---|---|
TYPE_UNSPECIFIED |
Não especificado. |
EXACT |
Só corresponde ao nome exato indicado. |
REGULAR_EXPRESSION |
Interpreta grpcMethod e grpcService como expressões regulares. A sintaxe RE2 é suportada. |
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, é usado um valor predefinido de EXACT. |
key |
Obrigatório. A chave do cabeçalho. |
value |
Obrigatório. O valor do cabeçalho. |
Tipo
O tipo de correspondência.
Enumerações | |
---|---|
TYPE_UNSPECIFIED |
Não especificado. |
EXACT |
Só corresponde ao valor exato fornecido. |
REGULAR_EXPRESSION |
Corresponde a caminhos em conformidade com o prefixo especificado pelo valor. A sintaxe RE2 é suportada. |
RouteAction
Especifica como encaminhar 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 forem especificados vários destinos, o tráfego é dividido entre os serviços de back-end de acordo com o campo de ponderação destes destinos. |
faultInjectionPolicy |
Opcional. A especificação para a injeção de falhas introduzida no tráfego para testar a capacidade de recuperação dos clientes em caso de falha do serviço de destino. Como parte da injeção de falhas, quando os clientes enviam pedidos para um destino, podem ser introduzidos atrasos numa percentagem de pedidos antes de enviar esses pedidos para o serviço de destino. Da mesma forma, os pedidos dos clientes podem ser anulados para uma percentagem de pedidos. O timeout e a retryPolicy são ignorados pelos clientes configurados com uma faultInjectionPolicy |
timeout |
Opcional. Especifica o limite de tempo para o trajeto selecionado. O tempo limite é calculado a partir do momento em que o pedido é totalmente processado (ou seja, o fim da transmissão) até que a resposta seja totalmente processada. O tempo limite inclui todas as novas tentativas. Uma duração em segundos com até nove dígitos fracionários, que termina com " |
retryPolicy |
Opcional. Especifica a política de repetição associada a esta rota. |
statefulSessionAffinity |
Opcional. Especifica a afinidade de sessão com estado baseada em cookies. |
idleTimeout |
Opcional. Especifica o limite de tempo de inatividade para o trajeto selecionado. O limite de tempo de inatividade é definido como o período em que não são enviados nem recebidos bytes na ligação a montante ou a jusante. Se não estiver definido, o tempo limite de inatividade predefinido é de 1 hora. Se for definido como 0 s, o limite de tempo é desativado. Uma duração em segundos com até nove dígitos fracionários, que termina com " |
Destino
O destino para o qual o tráfego vai ser encaminhado.
Representação JSON |
---|
{ // Union field |
Campos | |
---|---|
Campo de união destination_type . Especifica o tipo de destino para o qual o tráfego vai ser encaminhado. destination_type só pode ser uma das seguintes opções: |
|
serviceName |
Obrigatório. O URL de um serviço de destino para o qual encaminhar tráfego. Tem de fazer referência a um BackendService ou a um ServiceDirectoryService. |
weight |
Opcional. Especifica a proporção de pedidos encaminhados para o back-end referenciado pelo campo serviceName. Este valor é calculado da seguinte forma: - peso/Soma(pesos nesta lista de destinos). Para valores diferentes de zero, pode haver algum épsilon da proporção exata definida aqui, consoante a precisão suportada por uma implementação. Se for especificado apenas um serviceName e tiver um peso superior a 0, 100% do tráfego é encaminhado para esse back-end. Se forem especificados pesos para qualquer nome de serviço, têm de ser especificados para todos. Se os pesos não forem especificados para todos os serviços, o tráfego é distribuído em proporções iguais por todos eles. |
FaultInjectionPolicy
A especificação para a injeção de falhas introduzida no tráfego para testar a capacidade de recuperação dos clientes em caso de falha do serviço de destino. Como parte da injeção de falhas, quando os clientes enviam pedidos para um destino, podem ser introduzidos atrasos numa percentagem de pedidos antes de enviar esses pedidos para o serviço de destino. Da mesma forma, os pedidos dos clientes podem ser anulados para uma percentagem de pedidos.
Representação JSON |
---|
{ "delay": { object ( |
Campos | |
---|---|
delay |
A especificação para injetar um atraso nos pedidos do cliente. |
abort |
A especificação para anular pedidos de clientes. |
Atraso
Especificação de como os pedidos do cliente são atrasados como parte da injeção de falhas antes de serem enviados para um destino.
Representação JSON |
---|
{ "fixedDelay": string, "percentage": integer } |
Campos | |
---|---|
fixedDelay |
Especifique um atraso fixo antes de encaminhar o pedido. Uma duração em segundos com até nove dígitos fracionários, que termina com " |
percentage |
A percentagem de tráfego na qual o atraso vai ser injetado. O valor tem de estar compreendido entre [0 e 100] |
Interromper
Especificação de como os pedidos do cliente são anulados como parte da injeção de falhas antes de serem enviados para um destino.
Representação JSON |
---|
{ "httpStatus": integer, "percentage": integer } |
Campos | |
---|---|
httpStatus |
O código de estado HTTP usado para anular o pedido. O valor tem de estar entre 200 e 599, inclusive. |
percentage |
A percentagem de tráfego que vai ser anulada. O valor tem de estar compreendido entre [0 e 100] |
RetryPolicy
As especificações para novas tentativas.
Representação JSON |
---|
{ "retryConditions": [ string ], "numRetries": integer } |
Campos | |
---|---|
retryConditions[] |
|
numRetries |
Especifica o número permitido de novas tentativas. Este número tem de ser > 0. Se não for especificado, a predefinição é 1. |
StatefulSessionAffinityPolicy
A especificação para a afinidade de 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 anfitrião de destino específico e cada pedido que contenha esse cookie é direcionado para esse anfitrião, desde que o anfitrião de destino permaneça ativo e em bom estado.
A biblioteca de malha sem proxy gRPC ou o proxy sidecar vai gerir o cookie de sessão, mas o código da aplicação cliente é responsável por copiar o cookie de cada RPC na sessão para a seguinte.
Representação JSON |
---|
{ "cookieTtl": string } |
Campos | |
---|---|
cookieTtl |
Obrigatório. O valor TTL do cookie para o cabeçalho Set-Cookie gerado pelo plano de dados. A duração do cookie pode ser definida para um valor entre 1 e 86 400 segundos (24 horas), inclusive. Uma duração em segundos com até nove dígitos fracionários, que termina com " |
Métodos |
|
---|---|
|
Cria uma nova GrpcRoute num determinado projeto e localização. |
|
Elimina um único GrpcRoute. |
|
Obtém detalhes de um único GrpcRoute. |
|
Apresenta GrpcRoutes num determinado projeto e localização. |
|
Atualiza os parâmetros de uma única GrpcRoute. |