- Recurso: HttpRoute
- RouteRule
- RouteMatch
- HeaderMatch
- IntegerRange
- QueryParameterMatch
- RouteAction
- Destino
- HeaderModifier
- Redirecionamento
- ResponseCode
- FaultInjectionPolicy
- Atraso
- Abortar
- URLRewrite
- RetryPolicy
- RequestMirrorPolicy
- CorsPolicy
- StatefulSessionAffinityPolicy
- HttpDirectResponse
- Métodos
Recurso: HttpRoute
HttpRoute é o recurso que define como o tráfego HTTP deve ser encaminhado por um recurso de malha ou gateway.
Representação JSON |
---|
{
"name": string,
"selfLink": string,
"description": string,
"createTime": string,
"updateTime": string,
"hostnames": [
string
],
"meshes": [
string
],
"gateways": [
string
],
"labels": {
string: string,
...
},
"rules": [
{
object ( |
Campos | |
---|---|
name |
Obrigatório. Nome do recurso HttpRoute. Corresponde ao padrão |
selfLink |
Apenas saída. URL definido pelo servidor deste recurso |
description |
Opcional. Uma descrição de texto livre do recurso. Comprimento máximo de 1024 carateres. |
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: |
hostnames[] |
Obrigatório. Os nomes de anfitriões definem um conjunto de anfitriões que devem corresponder ao cabeçalho do anfitrião HTTP para selecionar uma HttpRoute para processar o pedido. O nome do anfitrião é o nome do domínio totalmente qualificado de um anfitrião de rede, conforme definido pela RFC 1123, com a exceção de que: - 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 a gateways 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 as rotas para os nomes de anfitrião |
meshes[] |
Opcional. Meshes define uma lista de malhas às quais esta HttpRoute está associada, como uma das regras de encaminhamento para encaminhar os pedidos processados pela malha. Cada referência de malha deve corresponder ao padrão: O Mesh anexado deve ser do tipo SIDECAR |
gateways[] |
Opcional. Gateways define uma lista de gateways aos quais esta HttpRoute está associada, como uma das regras de encaminhamento para encaminhar os pedidos processados pelo gateway. Cada referência de gateway deve corresponder ao padrão: |
labels |
Opcional. Conjunto de etiquetas associadas ao recurso HttpRoute. Um objeto que contém uma lista de pares |
rules[] |
Obrigatório. Regras que definem como o tráfego é encaminhado e processado. As regras são correspondidas sequencialmente com base no RouteMatch especificado para a regra. |
RouteRule
Especifica como fazer a correspondência do tráfego e como encaminhar o tráfego quando é feita a correspondência.
Representação JSON |
---|
{ "matches": [ { object ( |
Campos | |
---|---|
matches[] |
Uma lista de correspondências define as condições usadas para fazer corresponder a regra com os pedidos HTTP 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. Se quiser configurar uma regra predefinida, adicione uma regra sem correspondências especificadas no final da lista de regras. |
action |
A regra detalhada que define como encaminhar o tráfego correspondente. |
RouteMatch
O RouteMatch define as especificações usadas para fazer corresponder pedidos. Se forem definidos vários tipos de correspondência, esta RouteMatch vai corresponder se TODOS os tipos de correspondências forem correspondentes.
Representação JSON |
---|
{ "ignoreCase": boolean, "headers": [ { object ( |
Campos | |
---|---|
ignoreCase |
Especifica se as correspondências prefixMatch e fullPathMatch são sensíveis a maiúsculas e minúsculas. O valor predefinido é false. |
headers[] |
Especifica uma lista de cabeçalhos de pedidos HTTP para fazer a correspondência. TODOS os cabeçalhos fornecidos têm de corresponder. |
queryParameters[] |
Especifica uma lista de parâmetros de consulta para fazer a correspondência. TODOS os parâmetros de consulta têm de corresponder. |
Campo de união
|
|
fullPathMatch |
O valor do caminho do pedido HTTP deve corresponder exatamente a este valor. Só deve ser usado um dos seguintes: fullPathMatch, prefixMatch ou regexMatch. |
prefixMatch |
O valor do caminho do pedido HTTP tem de começar com o prefixMatch especificado. O prefixMatch tem de começar com /. Só deve ser usado um dos seguintes: fullPathMatch, prefixMatch ou regexMatch. |
regexMatch |
O valor do caminho do pedido HTTP tem de satisfazer a expressão regular especificada por regexMatch após a remoção de quaisquer parâmetros de consulta e âncora fornecidos com o URL original. Para a gramática das expressões regulares, consulte https://github.com/google/re2/wiki/Syntax Só deve ser usado um dos seguintes: fullPathMatch, prefixMatch ou regexMatch. |
HeaderMatch
Especifica como selecionar uma regra de encaminhamento com base nos cabeçalhos de pedidos HTTP.
Representação JSON |
---|
{ "header": string, "invertMatch": boolean, // Union field |
Campos | |
---|---|
header |
O nome do cabeçalho HTTP com o qual estabelecer correspondência. |
invertMatch |
Se for especificado, o resultado da correspondência é invertido antes da verificação. O valor predefinido está definido como falso. |
Campo de união
|
|
exactMatch |
O valor do cabeçalho deve corresponder exatamente ao conteúdo de exactMatch. |
regexMatch |
O valor do cabeçalho tem de corresponder à expressão regular especificada em regexMatch. Para a gramática das expressões regulares, consulte: https://github.com/google/re2/wiki/Syntax |
prefixMatch |
O valor do cabeçalho tem de começar com o conteúdo de prefixMatch. |
presentMatch |
Tem de existir um cabeçalho com headerName. A correspondência ocorre independentemente de o cabeçalho ter ou não um valor. |
suffixMatch |
O valor do cabeçalho tem de terminar com o conteúdo de suffixMatch. |
rangeMatch |
Se for especificado, a regra vai corresponder se o valor do cabeçalho do pedido estiver dentro do intervalo. |
IntegerRange
Representa um intervalo de valores inteiros.
Representação JSON |
---|
{ "start": integer, "end": integer } |
Campos | |
---|---|
start |
Início do intervalo (inclusive) |
end |
Fim do intervalo (exclusive) |
QueryParameterMatch
Especificações para corresponder a um parâmetro de consulta no pedido.
Representação JSON |
---|
{ "queryParameter": string, // Union field |
Campos | |
---|---|
queryParameter |
O nome do parâmetro de consulta a corresponder. |
Campo de união
|
|
exactMatch |
O valor do parâmetro de consulta tem de corresponder exatamente ao conteúdo de exactMatch. Só é possível definir um dos seguintes: exactMatch, regexMatch ou presentMatch. |
regexMatch |
O valor do parâmetro de consulta tem de corresponder à expressão regular especificada por regexMatch. Para a gramática das expressões regulares, consulte https://github.com/google/re2/wiki/Syntax Só é possível definir um dos seguintes: exactMatch, regexMatch ou presentMatch. |
presentMatch |
Especifica que o QueryParameterMatcher corresponde se o pedido contiver o parâmetro de consulta, independentemente de o parâmetro ter ou não um valor. Só é possível definir um dos seguintes: exactMatch, regexMatch ou presentMatch. |
RouteAction
As especificações para encaminhar o tráfego e aplicar as políticas associadas.
Representação JSON |
---|
{ "destinations": [ { object ( |
Campos | |
---|---|
destinations[] |
O destino para o qual o tráfego deve ser encaminhado. |
redirect |
Se estiver definido, o pedido é direcionado conforme configurado por este campo. |
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 back-end. Como parte da injeção de falhas, quando os clientes enviam pedidos para um serviço de back-end, podem ser introduzidos atrasos numa percentagem de pedidos antes de enviar esses pedidos para o serviço de back-end. 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 |
requestHeaderModifier |
A especificação para modificar os cabeçalhos de um pedido correspondente antes da entrega do pedido ao destino. Se os HeaderModifiers estiverem definidos no destino e no RouteAction, são unidos. Os conflitos entre os dois não são resolvidos na configuração. |
responseHeaderModifier |
A especificação para modificar os cabeçalhos de uma resposta antes de a enviar de volta ao cliente. Se os HeaderModifiers estiverem definidos no destino e no RouteAction, são unidos. Os conflitos entre os dois não são resolvidos na configuração. |
urlRewrite |
A especificação para reescrever o URL antes de encaminhar pedidos para o destino. |
timeout |
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 |
Especifica a política de repetição associada a esta rota. |
requestMirrorPolicy |
Especifica a política sobre como os pedidos destinados ao destino de rotas são duplicados para um destino espelhado separado. O proxy não aguarda que o destino secundário responda antes de devolver a resposta. Antes de enviar tráfego para o serviço de sombra, o cabeçalho host/authority tem o sufixo -shadow. |
corsPolicy |
A especificação para permitir pedidos de origem cruzada do lado do cliente. |
statefulSessionAffinity |
Opcional. Especifica a afinidade de sessão com estado baseada em cookies. |
directResponse |
Opcional. Objeto de resposta HTTP estático a ser devolvido independentemente do pedido. |
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
Especificações de um destino para o qual o pedido deve ser encaminhado.
Representação JSON |
---|
{ "serviceName": string, "weight": integer, "requestHeaderModifier": { object ( |
Campos | |
---|---|
serviceName |
O URL de um BackendService para o qual encaminhar o tráfego. |
weight |
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. |
requestHeaderModifier |
Opcional. A especificação para modificar os cabeçalhos de um pedido correspondente antes da entrega do pedido ao destino. Se os HeaderModifiers estiverem definidos no destino e no RouteAction, são unidos. Os conflitos entre os dois não são resolvidos na configuração. |
responseHeaderModifier |
Opcional. A especificação para modificar os cabeçalhos de uma resposta antes de a enviar de volta ao cliente. Se os HeaderModifiers estiverem definidos no destino e no RouteAction, são unidos. Os conflitos entre os dois não são resolvidos na configuração. |
HeaderModifier
A especificação para modificar o cabeçalho HTTP no pedido HTTP e na resposta HTTP.
Representação JSON |
---|
{ "set": { string: string, ... }, "add": { string: string, ... }, "remove": [ string ] } |
Campos | |
---|---|
set |
Substitua completamente os cabeçalhos pelo mapa fornecido, em que a chave é o nome do cabeçalho e o valor é o valor do cabeçalho. Um objeto que contém uma lista de pares |
add |
Adicione os cabeçalhos com o mapa fornecido, em que a chave é o nome do cabeçalho e o valor é o valor do cabeçalho. Um objeto que contém uma lista de pares |
remove[] |
Remova os cabeçalhos (com correspondência pelos nomes dos cabeçalhos) especificados na lista. |
Redirecionar
A especificação para redirecionar tráfego.
Representação JSON |
---|
{
"hostRedirect": string,
"pathRedirect": string,
"prefixRewrite": string,
"responseCode": enum ( |
Campos | |
---|---|
hostRedirect |
O anfitrião que vai ser usado na resposta de redirecionamento em vez do que foi fornecido no pedido. |
pathRedirect |
O caminho que vai ser usado na resposta de redirecionamento em vez do que foi fornecido no pedido. pathRedirect não pode ser fornecido juntamente com prefixRedirect. Forneça apenas um ou nenhum. Se não for fornecido nenhum dos dois, é usado o caminho do pedido original para o redirecionamento. |
prefixRewrite |
Indica que, durante o redirecionamento, o prefixo (ou o caminho) correspondente deve ser trocado por este valor. Esta opção permite que os URLs sejam criados dinamicamente com base no pedido. |
responseCode |
O código de estado HTTP a usar para o redirecionamento. |
httpsRedirect |
Se estiver definida como verdadeira, o esquema de URL no pedido redirecionado é definido como https. Se for definido como falso, o esquema de URL do pedido redirecionado permanece igual ao do pedido. O valor predefinido é false. |
stripQuery |
Se for definido como verdadeiro, qualquer parte da consulta que acompanhe o URL original é removida antes de redirecionar o pedido. Se for definido como falso, a parte da consulta do URL original é mantida. O valor predefinido é false. |
portRedirect |
A porta que vai ser usada no pedido redirecionado em vez da que foi fornecida no pedido. |
ResponseCode
Código de resposta HTTP suportado.
Enumerações | |
---|---|
RESPONSE_CODE_UNSPECIFIED |
Valor predefinido |
MOVED_PERMANENTLY_DEFAULT |
Corresponde a 301. |
FOUND |
Corresponde a 302. |
SEE_OTHER |
Corresponde a 303. |
TEMPORARY_REDIRECT |
Corresponde a 307. Neste caso, o método de pedido é mantido. |
PERMANENT_REDIRECT |
Corresponde a 308. Neste caso, o método de pedido é mantido. |
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, o proxy do cliente pode introduzir atrasos numa percentagem de pedidos antes de os enviar para o serviço de destino. Da mesma forma, os pedidos podem ser anulados pelo proxy do cliente para uma percentagem dos 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] |
URLRewrite
A especificação para modificar o URL do pedido, antes de encaminhar o pedido para o destino.
Representação JSON |
---|
{ "pathPrefixRewrite": string, "hostRewrite": string } |
Campos | |
---|---|
pathPrefixRewrite |
Antes de encaminhar o pedido para o destino selecionado, a parte correspondente do caminho do pedido é substituída por este valor. |
hostRewrite |
Antes de encaminhar o pedido para o destino selecionado, o cabeçalho do anfitrião do pedido é substituído por este valor. |
RetryPolicy
As especificações para novas tentativas.
Representação JSON |
---|
{ "retryConditions": [ string ], "numRetries": integer, "perTryTimeout": string } |
Campos | |
---|---|
retryConditions[] |
Especifica uma ou mais condições quando esta política de repetição se aplica. Os valores válidos são: 5xx: o proxy tenta novamente se o serviço de destino responder com qualquer código de resposta 5xx ou se o serviço de destino não responder de todo. Por exemplo: desconexão, reposição, tempo limite de leitura, falha de ligação e streams recusadas. gateway-error: semelhante a 5xx, mas aplica-se apenas aos códigos de resposta 502, 503 e 504. reset: o proxy tenta novamente se o serviço de destino não responder (desligar/reposição/tempo limite de leitura) connect-failure: o proxy vai tentar novamente em caso de falhas de ligação ao destino, por exemplo, devido a limites de tempo de ligação. retriable-4xx: o proxy vai tentar novamente os códigos de resposta 4xx repetíveis. Atualmente, o único erro repetível suportado é o 409. refused-stream: o proxy vai tentar novamente se o destino repuser a stream com um código de erro REFUSED_STREAM. Este tipo de reposição indica que é seguro tentar novamente. |
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. |
perTryTimeout |
Especifica um limite de tempo diferente de zero por tentativa de repetição. Uma duração em segundos com até nove dígitos fracionários, que termina com " |
RequestMirrorPolicy
Especifica a política sobre como os pedidos são duplicados para um serviço de destino espelhado separado. O proxy não aguarda respostas do serviço de sombra. Antes de enviar tráfego para o serviço de sombra, o cabeçalho host/authority tem o sufixo -shadow.
Representação JSON |
---|
{
"destination": {
object ( |
Campos | |
---|---|
destination |
O destino para o qual os pedidos vão ser replicados. A ponderação do destino é ignorada. |
mirrorPercent |
Opcional. A percentagem de pedidos a serem espelhados para o destino pretendido. |
CorsPolicy
A especificação para permitir pedidos de origem cruzada do lado do cliente.
Representação JSON |
---|
{ "allowOrigins": [ string ], "allowOriginRegexes": [ string ], "allowMethods": [ string ], "allowHeaders": [ string ], "exposeHeaders": [ string ], "maxAge": string, "allowCredentials": boolean, "disabled": boolean } |
Campos | |
---|---|
allowOrigins[] |
Especifica a lista de origens que podem fazer pedidos CORS. Uma origem é permitida se corresponder a um item em allowOrigins ou a um item em allowOriginRegexes. |
allowOriginRegexes[] |
Especifica os padrões de expressões regulares que correspondem às origens permitidas. Para a gramática das expressões regulares, consulte https://github.com/google/re2/wiki/Syntax. |
allowMethods[] |
Especifica o conteúdo do cabeçalho Access-Control-Allow-Methods. |
allowHeaders[] |
Especifica o conteúdo do cabeçalho Access-Control-Allow-Headers. |
exposeHeaders[] |
Especifica o conteúdo do cabeçalho Access-Control-Expose-Headers. |
maxAge |
Especifica durante quanto tempo o resultado de um pedido de verificação prévia pode ser colocado em cache em segundos. Isto traduz-se no cabeçalho Access-Control-Max-Age. |
allowCredentials |
Em resposta a um pedido de pré-voo, a definição desta opção como verdadeira indica que o pedido real pode incluir credenciais do utilizador. Isto traduz-se no cabeçalho Access-Control-Allow-Credentials. O valor predefinido é False. |
disabled |
Se for verdadeiro, a política CORS é desativada. O valor predefinido é false, o que indica que a política de CORS está em vigor. |
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 " |
HttpDirectResponse
Objeto de resposta HTTP estático a ser devolvido.
Representação JSON |
---|
{ "status": integer, // Union field |
Campos | |
---|---|
status |
Obrigatório. Estado a devolver como parte da resposta HTTP. Tem de ser um número inteiro positivo. |
Campo de união HttpBody . Corpo a devolver como parte da resposta HTTP. HttpBody só pode ser uma das seguintes opções: |
|
stringBody |
Opcional. Corpo da resposta como uma string. O comprimento máximo do corpo é de 1024 carateres. |
bytesBody |
Opcional. Corpo da resposta como bytes. O tamanho máximo do corpo é de 4096 B. Uma string codificada em Base64. |
Métodos |
|
---|---|
|
Cria uma nova HttpRoute num determinado projeto e localização. |
|
Elimina um único HttpRoute. |
|
Obtém detalhes de uma única HttpRoute. |
|
Apresenta HttpRoute num determinado projeto e localização. |
|
Atualiza os parâmetros de uma única HttpRoute. |