- Recurso: HttpRoute
- RouteRule
- RouteMatch
- HeaderMatch
- IntegerRange
- QueryParameterMatch
- RouteAction
- Destino
- HeaderModifier
- Redirecionamento
- ResponseCode
- FaultInjectionPolicy
- Atraso
- Cancelar
- URLRewrite
- RetryPolicy
- RequestMirrorPolicy
- CorsPolicy
- StatefulSessionAffinityPolicy
- HttpDirectResponse
- Métodos
Recurso: HttpRoute
HttpRoute é o recurso que define como o tráfego HTTP deve ser roteado por um recurso de malha ou de 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 desse recurso |
description |
Opcional. Uma descrição em texto livre do recurso. Comprimento máximo de 1.024 caracteres. |
createTime |
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: |
updateTime |
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: |
hostnames[] |
Obrigatório. Os nomes de host definem um conjunto de hosts que devem corresponder ao cabeçalho do host HTTP para selecionar um HttpRoute e processar a solicitação. Nome do host é o nome de domínio totalmente qualificado de um host de rede, conforme definido pelo RFC 1123, com a exceção de que: - IPs não são permitidos. - Um nome do host pode ser prefixado com um rótulo de caractere curinga ( O nome do host pode ser "precisão", que é um nome de domínio sem o ponto final de um host de rede (por exemplo, Observe que, de acordo com o RFC1035 e o RFC1123, um rótulo deve conter caracteres alfanuméricos em minúscula ou "-", além de começar e terminar com um caractere alfanumérico. Nenhuma outra pontuação é permitida. As rotas associadas a uma malha ou um 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 dos nomes de host |
meshes[] |
Opcional. Malhas define uma lista de malhas a que esse HttpRoute está anexado, como uma das regras de roteamento para rotear as solicitações atendidas pela malha. Cada referência de malha precisa corresponder ao padrão: A malha anexada precisa ser do tipo SIDECAR |
gateways[] |
Opcional. "Gateways" define uma lista de gateways a que esse HttpRoute 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: |
labels |
Opcional. Conjunto de tags de rótulo associadas ao recurso HttpRoute. Um objeto com uma lista de pares |
rules[] |
Obrigatório. Regras que definem como o tráfego é roteado e processado. A correspondência das regras será feita sequencialmente com base no RouteMatch especificado para a regra. |
RouteRule
Especifica como corresponder o tráfego e como rotear o tráfego quando ele for correspondido.
Representação JSON |
---|
{ "matches": [ { object ( |
Campos | |
---|---|
matches[] |
Uma lista de correspondências define as condições usadas para corresponder a regra às solicitações HTTP recebidas. Cada correspondência é independente, ou seja, essa regra será correspondida se QUALQUER uma das correspondências for atendida. Se nenhum campo de correspondência for especificado, a regra vai corresponder ao tráfego incondicionalmente. Se você quiser configurar uma regra padrão, adicione outra sem correspondências especificadas ao fim da lista. |
action |
A regra detalhada que define como rotear o tráfego correspondente. |
RouteMatch
RouteMatch define as especificações usadas para corresponder às solicitações. Se vários tipos de correspondência forem definidos, esse RouteMatch será correspondido se TODOS os tipos forem correspondidos.
Representação JSON |
---|
{ "ignoreCase": boolean, "headers": [ { object ( |
Campos | |
---|---|
ignoreCase |
Especifica se as correspondências de prefixMatch e fullPathMatch diferenciam maiúsculas de minúsculas. O valor padrão é falso. |
headers[] |
Especifica uma lista de cabeçalhos de solicitação HTTP para correspondência. TODOS os cabeçalhos fornecidos devem ser correspondentes. |
queryParameters[] |
Especifica uma lista de parâmetros de consulta para fazer a correspondência. TODOS os parâmetros de consulta precisam ser correspondentes. |
Campo de união
|
|
fullPathMatch |
O valor do caminho da solicitação HTTP deve corresponder exatamente a esse valor. Use somente fullPathMatch, prefixMatch ou regexMatch. |
prefixMatch |
O valor do caminho da solicitação HTTP deve começar com o prefixMatch especificado. O prefixMatch deve começar com uma barra (/). Use somente fullPathMatch, prefixMatch ou regexMatch. |
regexMatch |
O valor do caminho da solicitação HTTP precisa satisfazer a expressão regular especificada por regexMatch depois de remover todos os parâmetros de consulta e âncoras fornecidos com o URL original. Para conferir a gramática de expressões regulares, consulte https://github.com/google/re2/wiki/Syntax Use somente fullPathMatch, prefixMatch ou regexMatch. |
HeaderMatch
Especifica como selecionar uma regra de rota com base em cabeçalhos de solicitação HTTP.
Representação JSON |
---|
{ "header": string, "invertMatch": boolean, // Union field |
Campos | |
---|---|
header |
O nome do cabeçalho HTTP para fazer a correspondência. |
invertMatch |
Se especificado, o resultado da correspondência será invertido antes da verificação. O valor padrão é 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 precisa corresponder à expressão regular especificada em regexMatch. Para conferir a gramática de expressões regulares, acesse: https://github.com/google/re2/wiki/Syntax |
prefixMatch |
O valor do cabeçalho precisa começar com o conteúdo de prefixMatch. |
presentMatch |
É necessário que exista 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 precisa terminar com o conteúdo de sufixoMatch. |
rangeMatch |
Se especificado, a regra corresponderá se o valor do cabeçalho da solicitação estiver dentro do intervalo. |
IntegerRange
Representa um intervalo de valores inteiros.
Representação JSON |
---|
{ "start": integer, "end": integer } |
Campos | |
---|---|
start |
Início do intervalo (inclusivo) |
end |
Fim do intervalo (exclusivo) |
QueryParameterMatch
Especificações para corresponder a um parâmetro de consulta na solicitação.
Representação JSON |
---|
{ "queryParameter": string, // Union field |
Campos | |
---|---|
queryParameter |
O nome do parâmetro de consulta a ser correspondido. |
Campo de união
|
|
exactMatch |
O valor do parâmetro de consulta precisa corresponder exatamente ao conteúdo de "exactMatch". É necessário definir somente um dos campos "exactMatch", "regexMatch" ou "presentMatch". |
regexMatch |
O valor do parâmetro de consulta precisa corresponder à expressão regular especificada por regexMatch. Para conferir a gramática de expressões regulares, consulte https://github.com/google/re2/wiki/Syntax É necessário definir somente um dos campos "exactMatch", "regexMatch" ou "presentMatch". |
presentMatch |
Especifica que o QueryParameterMatcher corresponde se a solicitação contém um parâmetro de consulta, independentemente de o parâmetro ter um valor ou não. É necessário definir somente um dos campos "exactMatch", "regexMatch" ou "presentMatch". |
RouteAction
As especificações para rotear o tráfego e aplicar políticas associadas.
Representação JSON |
---|
{ "destinations": [ { object ( |
Campos | |
---|---|
destinations[] |
O destino para onde o tráfego precisa ser encaminhado. |
redirect |
Se definido, a solicitação será direcionada conforme configurado por esse campo. |
faultInjectionPolicy |
A especificação para injeção de falhas introduzida no tráfego para testar a resiliência dos clientes a falhas no serviço de back-end. Como parte da injeção de falhas, quando os clientes enviam solicitações para um serviço de back-end, podem ocorrer atrasos em uma porcentagem das solicitações antes de enviá-las ao serviço de back-end. Da mesma forma, as solicitações de clientes podem ser canceladas em uma porcentagem das solicitações. tempo limite e tryPolicy serão ignorados por clientes configurados com faultInjectionPolicy |
requestHeaderModifier |
A especificação para modificar os cabeçalhos de uma solicitação correspondente antes de entregar a solicitação ao destino. Se HeaderModifiers estiver definido em Destination e RouteAction, eles serão mesclados. Os conflitos entre os dois não serão resolvidos na configuração. |
responseHeaderModifier |
A especificação para modificar os cabeçalhos de uma resposta antes de enviá-la de volta ao cliente. Se HeaderModifiers estiver definido em Destination e RouteAction, eles serão mesclados. Os conflitos entre os dois não serão resolvidos na configuração. |
urlRewrite |
A especificação do URL de regravação antes de encaminhar solicitações para o destino. |
timeout |
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 completamente processada. O tempo limite inclui todas as novas tentativas. Duração em segundos com até nove dígitos fracionários, terminando em " |
retryPolicy |
Especifica a política de nova tentativa associada a esta rota. |
requestMirrorPolicy |
Especifica a política sobre como as solicitações destinadas ao destino das rotas são ocultadas em um destino espelhado separado. O proxy não vai esperar que o destino sombra responda antes de retornar a resposta. Antes de enviar tráfego para o serviço de sombra, o cabeçalho do host/autoridade é sufixado com -shadow. |
corsPolicy |
A especificação para permitir solicitações de origem cruzada no lado do cliente. |
statefulSessionAffinity |
Opcional. Especifica a afinidade da sessão com estado baseada em cookie. |
directResponse |
Opcional. Objeto de resposta HTTP estático a ser retornado independentemente da solicitação. |
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 deixada sem definição, o tempo limite de inatividade padrão será de uma hora. Se definido como 0s, o tempo limite será desativado. Duração em segundos com até nove dígitos fracionários, terminando em " |
Destino
Especificações de um destino para onde a solicitação será roteada.
Representação JSON |
---|
{ "serviceName": string, "weight": integer, "requestHeaderModifier": { object ( |
Campos | |
---|---|
serviceName |
O URL de um BackendService para onde rotear o tráfego. |
weight |
Especifica a proporção de solicitações encaminhadas para o back-end referenciado pelo campo serviceName. Isso é calculado como: - peso/SUM(pesos nesta lista de destino). Para valores diferentes de zero, pode haver algum épsilon da proporção exata definida aqui, dependendo da precisão que uma implementação suporta. Se apenas um serviceName for especificado e ele 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 a todos eles. |
requestHeaderModifier |
Opcional. A especificação para modificar os cabeçalhos de uma solicitação correspondente antes de entregar a solicitação ao destino. Se HeaderModifiers estiver definido em Destination e RouteAction, eles serão mesclados. Os conflitos entre os dois não serão resolvidos na configuração. |
responseHeaderModifier |
Opcional. A especificação para modificar os cabeçalhos de uma resposta antes de enviá-la de volta ao cliente. Se HeaderModifiers estiver definido em Destination e RouteAction, eles serão mesclados. Os conflitos entre os dois não serão resolvidos na configuração. |
HeaderModifier
A especificação para modificar o cabeçalho HTTP na solicitação e na resposta HTTP.
Representação JSON |
---|
{ "set": { string: string, ... }, "add": { string: string, ... }, "remove": [ string ] } |
Campos | |
---|---|
set |
Substitua/substitua completamente os cabeçalhos pelo mapa especificado, em que key é o nome do cabeçalho, value é o valor do cabeçalho. Um objeto com uma lista de pares |
add |
Adicione os cabeçalhos com o mapa especificado, em que a chave é o nome do cabeçalho, o valor é o valor do cabeçalho. Um objeto com uma lista de pares |
remove[] |
Remove os cabeçalhos (correspondentes por nomes de cabeçalho) especificados na lista. |
Redirecionamento
A especificação para redirecionar o tráfego.
Representação JSON |
---|
{
"hostRedirect": string,
"pathRedirect": string,
"prefixRewrite": string,
"responseCode": enum ( |
Campos | |
---|---|
hostRedirect |
O host que será usado na resposta de redirecionamento em vez do que foi fornecido na solicitação. |
pathRedirect |
O caminho que será usado na resposta de redirecionamento em vez do caminho fornecido na solicitação. Não é possível fornecer pathRedirect junto com prefixRedirect. Forneça um sozinho ou nenhum. Se nenhum for fornecido, o caminho da solicitação original será usado para o redirecionamento. |
prefixRewrite |
Indica que, durante o redirecionamento, o prefixo (ou caminho) correspondente precisa ser trocado por esse valor. Essa opção permite que os URLs sejam criados dinamicamente com base na solicitação. |
responseCode |
O código de status HTTP a ser usado para o redirecionamento. |
httpsRedirect |
Se definido como verdadeiro, o esquema de URL na solicitação redirecionada será definido como https. Se for definido como falso, o esquema de URL da solicitação redirecionada permanecerá o mesmo da solicitação. O padrão é definido como falso. |
stripQuery |
Se definido como verdadeiro, qualquer parte da consulta do URL original será removida antes do redirecionamento da solicitação. Se definido como falso, a parte de consulta do URL original será mantida. O padrão é definido como falso. |
portRedirect |
A porta que será usada na solicitação redirecionada em vez da que foi fornecida. |
ResponseCode
Código de resposta HTTP compatível.
Tipos enumerados | |
---|---|
RESPONSE_CODE_UNSPECIFIED |
Valor padrão |
MOVED_PERMANENTLY_DEFAULT |
Corresponde a 301. |
FOUND |
Corresponde a 302. |
SEE_OTHER |
Corresponde a 303. |
TEMPORARY_REDIRECT |
Corresponde a 307. Nesse caso, o método de solicitação será mantido. |
PERMANENT_REDIRECT |
Corresponde a 308. Nesse caso, o método de solicitação será mantido. |
FaultInjectionPolicy
A especificação para 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 para um destino, podem ocorrer atrasos pelo proxy do cliente em uma porcentagem das solicitações antes de enviá-las ao serviço de destino. Da mesma forma, as solicitações podem ser canceladas pelo proxy do cliente em uma porcentagem das solicitações.
Representação JSON |
---|
{ "delay": { object ( |
Campos | |
---|---|
delay |
A especificação para injetar atraso nas solicitações do cliente. |
abort |
A especificação para cancelar solicitações de clientes. |
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 |
Especifique 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 para um destino.
Representação JSON |
---|
{ "httpStatus": integer, "percentage": integer } |
Campos | |
---|---|
httpStatus |
Código de status HTTP usado para cancelar a solicitação. O valor precisa estar entre 200 e 599. |
percentage |
A porcentagem de tráfego que será cancelada. O valor precisa estar entre [0, 100] |
URLRewrite
A especificação para modificar o URL da solicitação, antes de encaminhá-la para o destino.
Representação JSON |
---|
{ "pathPrefixRewrite": string, "hostRewrite": string } |
Campos | |
---|---|
pathPrefixRewrite |
Antes de encaminhar a solicitação ao destino selecionado, a parte correspondente do caminho das solicitações é substituída por este valor. |
hostRewrite |
Antes de encaminhar a solicitação ao destino selecionado, o cabeçalho do host de solicitações é 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 nova tentativa se aplica. Os valores válidos são: 5xx: o proxy vai tentar uma nova tentativa se o serviço de destino responder com qualquer código de resposta 5xx. Caso o serviço de destino não responda, por exemplo: desconexão, redefinição, tempo limite de leitura, falha de conexão e streams recusados. gateway-error: semelhante a 5xx, mas só se aplica aos códigos de resposta 502, 503 e 504. redefinir: o proxy vai tentar uma nova tentativa se o serviço de destino não responder (tempo limite de desconexão/redefinição/leitura) conexão-falha: o proxy vai tentar novamente em caso de falhas na conexão com o destino, por exemplo, devido a tempos limite de conexão. "retriable-4xx": o proxy faz uma nova tentativa com os códigos de resposta 4xx recuperáveis. Atualmente, o único erro recuperável compatível é o 409. recusado-stream: o proxy tentará novamente se o destino redefinir o stream com um código de erro REFABLE_STREAM. Esse tipo de redefinição indica que é seguro tentar novamente. |
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. |
perTryTimeout |
Especifica um tempo limite diferente de zero por nova tentativa. Duração em segundos com até nove dígitos fracionários, terminando em " |
RequestMirrorPolicy
Especifica a política sobre como as solicitações são ocultadas para um serviço de destino espelhado separado. O proxy não espera respostas do serviço de sombra. Antes de enviar tráfego para o serviço de sombra, o cabeçalho do host/autoridade é sufixado com -shadow.
Representação JSON |
---|
{
"destination": {
object ( |
Campos | |
---|---|
destination |
O destino para o qual as solicitações serão espelhadas. O peso do destino será ignorado. |
mirrorPercent |
Opcional. A porcentagem de solicitações a serem espelhadas para o destino desejado. |
CorsPolicy
A especificação para permitir solicitações de origem cruzada no 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 poderão fazer solicitações de CORS. Uma origem será permitida se corresponder a um item em allowOrigins ou a um item em allowOriginRegexes. |
allowOriginRegexes[] |
Especifica os padrões de expressão regular que correspondem às origens permitidas. Para conferir a gramática de 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-Expor-Headers. |
maxAge |
Especifica quanto tempo, em segundos, o resultado de uma solicitação de simulação pode ser armazenado em cache. Isso se traduz no cabeçalho Access-Control-Max-Age. |
allowCredentials |
Em resposta a uma solicitação de simulação, definir este campo como verdadeiro indica que a solicitação real pode incluir credenciais de usuário. Isso se traduz no cabeçalho Access-Control-Allow-Credentials. O valor padrão é falso. |
disabled |
Se verdadeira, a política de CORS será desativada. O valor padrão é "false", o que indica que a política de CORS está em vigor. |
StatefulSessionAffinityPolicy
É a especificação para afinidade da sessão com estado baseado em cookie, em que o plano de data fornece um "cookie de sessão" com o nome "GSSA", que codifica um host de destino específico, e cada solicitação que contém esse cookie será direcionada para esse host, desde que o host de destino permaneça ativo e íntegro.
A biblioteca de malha sem proxy do gRPC ou o proxy secundário 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 " |
HttpDirectResponse
Objeto de resposta HTTP estático a ser retornado.
Representação JSON |
---|
{ "status": integer, // Union field |
Campos | |
---|---|
status |
Obrigatório. Status a ser retornado como parte da resposta HTTP. Precisa ser um número inteiro positivo. |
Campo de união HttpBody . Corpo a ser retornado como parte da resposta HTTP. HttpBody só pode ser de um dos seguintes tipos: |
|
stringBody |
Opcional. Corpo da resposta como uma string. O tamanho máximo do corpo é de 1.024 caracteres. |
bytesBody |
Opcional. Corpo da resposta como bytes. O tamanho máximo do corpo é de 4.096 B. Uma string codificada em base64. |
Métodos |
|
---|---|
|
Cria um novo HttpRoute em um determinado projeto e local. |
|
Exclui um único HttpRoute. |
|
Recebe detalhes de um único HttpRoute. |
|
Lista o HttpRoute em um determinado projeto e local. |
|
Atualiza os parâmetros de um único HttpRoute. |