- Recurso: HttpRoute
- RouteRule
- RouteMatch
- HeaderMatch
- IntegerRange
- QueryParameterMatch
- RouteAction
- Destino
- HeaderModifier
- Redirecionar
- ResponseCode
- FaultInjectionPolicy
- Atraso
- Abortar
- URLRewrite
- RetryPolicy
- RequestMirrorPolicy
- CorsPolicy
- StatefulSessionAffinityPolicy
- HttpDirectResponse
- Métodos
Recurso: HttpRoute
O HTTPRoute é o recurso que define como o tráfego HTTP deve ser roteado por um recurso de Mesh 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. Ele corresponde ao padrão |
selfLink |
Apenas saída. URL definido pelo servidor deste 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 precisam corresponder ao cabeçalho de host HTTP para selecionar uma HttpRoute para processar a solicitação. O nome do host é o nome de domínio totalmente qualificado de um host de rede, conforme definido pela RFC 1123, com a seguinte exceção: - IPs não são permitidos. - Um nome de host pode ter um prefixo com um identificador 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 o RFC1035 e o RFC1123, um identificador precisa consistir de caracteres alfanuméricos minúsculos ou "-", além de começar e terminar com um caractere alfanumérico. Nenhuma outra pontuação é permitida. As rotas associadas a uma rede mesh ou a gateways 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 as rotas dos nomes de host |
meshes[] |
Opcional. As malhas definem uma lista de malhas a que essa HttpRoute está anexada, como uma das regras de roteamento para encaminhar 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. Os gateways definem uma lista de gateways a que o HttpRoute está anexado, como uma das regras de roteamento para encaminhar 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. As regras serão correspondidas sequencialmente com base no RouteMatch especificado para a regra. |
RouteRule
Especifica como corresponder e 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á atendida se QUALQUER uma das correspondências for atendida. Se nenhum campo de correspondências for especificado, essa regra vai corresponder ao tráfego de forma incondicional. Se você quiser configurar uma regra padrão, adicione uma regra sem correspondências especificadas ao final da lista de regras. |
action |
A regra detalhada que define como rotear o tráfego correspondente. |
RouteMatch
O RouteMatch define as especificações usadas para corresponder às solicitações. Se vários tipos de correspondência forem definidos, essa RouteMatch vai corresponder se TODOS os tipos de correspondência forem atendidos.
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 precisam ser correspondidos. |
queryParameters[] |
Especifica uma lista de parâmetros de consulta a serem usados. TODOS os parâmetros de consulta precisam ser correspondentes. |
Campo de união
|
|
fullPathMatch |
O valor do caminho da solicitação HTTP precisa corresponder exatamente a esse valor. Use apenas uma das opções fullPathMatch, prefixMatch ou regexMatch. |
prefixMatch |
O valor do caminho da solicitação HTTP precisa começar com o prefixo especificado. O prefixo precisa começar com /. Use apenas uma das opções fullPathMatch, prefixMatch ou regexMatch. |
regexMatch |
O valor do caminho da solicitação HTTP precisa atender à expressão regular especificada por regexMatch depois de remover todos os parâmetros de consulta e âncoras fornecidos com o URL original. Para saber mais sobre a gramática de expressões regulares, consulte https://github.com/google/re2/wiki/Syntax. Use apenas uma das opções fullPathMatch, prefixMatch ou regexMatch. |
HeaderMatch
Especifica como selecionar uma regra de rota com base nos cabeçalhos de solicitação HTTP.
Representação JSON |
---|
{ "header": string, "invertMatch": boolean, // Union field |
Campos | |
---|---|
header |
O nome do cabeçalho HTTP a ser usado. |
invertMatch |
Se especificado, o resultado da correspondência será invertido antes da verificação. O valor padrão é definido como "false". |
Campo de união
|
|
exactMatch |
O valor do cabeçalho precisa corresponder exatamente ao conteúdo de exactMatch. |
regexMatch |
O valor do cabeçalho precisa corresponder à expressão regular especificada em regexMatch. Para saber mais sobre a gramática de expressões regulares, consulte: https://github.com/google/re2/wiki/Syntax |
prefixMatch |
O valor do cabeçalho precisa começar com o conteúdo de prefixMatch. |
presentMatch |
Um cabeçalho com headerName precisa existir. A correspondência ocorre independentemente de o cabeçalho ter um valor. |
suffixMatch |
O valor do cabeçalho precisa terminar com o conteúdo de suffixMatch. |
rangeMatch |
Se especificado, a regra vai corresponder se o valor do cabeçalho da solicitação estiver dentro do intervalo. |
IntegerRange
Representa um intervalo de valor inteiro.
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. Apenas um entre exactMatch, regexMatch ou presentMatch precisa ser definido. |
regexMatch |
O valor do parâmetro de consulta precisa corresponder à expressão regular especificada por regexMatch. Para saber mais sobre a gramática de expressões regulares, consulte https://github.com/google/re2/wiki/Syntax. Apenas um entre exactMatch, regexMatch ou presentMatch precisa ser definido. |
presentMatch |
Especifica que o QueryParameterMatcher corresponde se a solicitação contém o parâmetro de consulta, independentemente de o parâmetro ter um valor ou não. Apenas um entre exactMatch, regexMatch ou presentMatch precisa ser definido. |
RouteAction
As especificações para rotear o tráfego e aplicar as políticas associadas.
Representação JSON |
---|
{ "destinations": [ { object ( |
Campos | |
---|---|
destinations[] |
O destino para onde o tráfego deve ser encaminhado. |
redirect |
Se definido, a solicitação é direcionada conforme configurado por este campo. |
faultInjectionPolicy |
A especificação de injeção de falhas introduzida no tráfego para testar a resiliência dos clientes à falha do 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, é possível introduzir atrasos em uma porcentagem de solicitações antes de enviá-las ao serviço de back-end. Da mesma forma, as solicitações de clientes podem ser abortadas para uma porcentagem de solicitações. O tempo limite e a retryPolicy serão ignorados por clientes configurados com uma faultInjectionPolicy. |
requestHeaderModifier |
A especificação para modificar os cabeçalhos de uma solicitação correspondente antes do envio da solicitação ao destino. Se os HeaderModifiers forem definidos no destino e na RouteAction, eles serão mesclados. 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 os HeaderModifiers forem definidos no destino e na RouteAction, eles serão mesclados. Conflitos entre os dois não serão resolvidos na configuração. |
urlRewrite |
Especificação para reescrever o URL 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 da transmissão) 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 |
Especifica a política de nova tentativa associada a essa rota. |
requestMirrorPolicy |
Especifica a política de como as solicitações destinadas ao destino das rotas são sombreadas para 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 sombra, o cabeçalho host/autoridade recebe o sufixo -shadow. |
corsPolicy |
A especificação para permitir solicitações entre origens do lado do cliente. |
statefulSessionAffinity |
Opcional. Especifica afinidade da sessão com estado baseada em cookies. |
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 não for definido, o tempo limite de inatividade padrão será de 1 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 precisa ser roteada.
Representação JSON |
---|
{ "serviceName": string, "weight": integer, "requestHeaderModifier": { object ( |
Campos | |
---|---|
serviceName |
O URL de um BackendService para encaminhar o tráfego. |
weight |
Especifica a proporção de solicitações encaminhadas ao back-end referenciado pelo campo serviceName. Isso é calculado como: - peso/soma(pesos na lista de destinos). Para valores diferentes de zero, pode haver um valor epsilon da proporção exata definida aqui, dependendo da precisão com que uma implementação é compatível. Se apenas um serviceName for especificado e tiver um peso maior que 0, 100% do tráfego será encaminhado para esse back-end. Se os pesos for 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. |
requestHeaderModifier |
Opcional. A especificação para modificar os cabeçalhos de uma solicitação correspondente antes do envio da solicitação ao destino. Se os HeaderModifiers forem definidos no destino e na RouteAction, eles serão mesclados. 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 os HeaderModifiers forem definidos no destino e na RouteAction, eles serão mesclados. 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 HTTP e na resposta HTTP.
Representação JSON |
---|
{ "set": { string: string, ... }, "add": { string: string, ... }, "remove": [ string ] } |
Campos | |
---|---|
set |
Substitua completamente 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 com 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 com uma lista de pares |
remove[] |
Remove 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 que foi fornecido na solicitação. O pathRedirect não pode ser fornecido com prefixRedirect. Informe apenas um ou nenhum. Se nenhum deles 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 definido como "false", o esquema de URL da solicitação redirecionada vai permanecer o mesmo. O padrão é definido como falso. |
stripQuery |
Se definido como "true", qualquer parte de consulta que acompanha o URL original é removida antes de redirecionar a solicitação. Se definido como "false", a parte da consulta do URL original é mantida. O padrão é definido como falso. |
portRedirect |
A porta que será usada na solicitação redirecionada em vez da que foi fornecida na solicitação. |
ResponseCode
Código de resposta HTTP com suporte.
Enums | |
---|---|
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 de injeção de falhas introduzida no tráfego para testar a resiliência dos clientes à falha do serviço de destino. Como parte da injeção de falhas, quando os clientes enviam solicitações para um destino, o proxy do cliente pode introduzir atrasos em uma porcentagem de solicitações antes de enviá-las ao serviço de destino. Da mesma forma, as solicitações podem ser abortadas pelo proxy do cliente para uma porcentagem de 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 abortar as 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 para 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 do 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 abortadas como parte da injeção de falhas antes de serem enviadas para um destino.
Representação JSON |
---|
{ "httpStatus": integer, "percentage": integer } |
Campos | |
---|---|
httpStatus |
O código de status HTTP usado para abortar a solicitação. O valor precisa estar entre 200 e 599. |
percentage |
A porcentagem de tráfego que será abortado. O valor precisa estar entre [0, 100] |
URLRewrite
A especificação para modificar o URL da solicitação antes de encaminhar a solicitação ao destino.
Representação JSON |
---|
{ "pathPrefixRewrite": string, "hostRewrite": string } |
Campos | |
---|---|
pathPrefixRewrite |
Antes de encaminhar a solicitação ao destino selecionado, a parte correspondente do caminho da solicitação é substituída por esse valor. |
hostRewrite |
Antes de encaminhar a solicitação ao destino selecionado, o cabeçalho de host da solicitação é substituído por esse 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 essa política de nova tentativa é aplicada. 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 ou se o serviço de destino não responder, por exemplo: desconexão, redefinição, tempo limite de leitura, falha de conexão e streams recusados. gateway-error: semelhante a 5xx, mas se aplica somente aos códigos de resposta 502, 503 e 504. reset: o proxy vai tentar uma nova tentativa se o serviço de destino não responder (tempo limite de desconexão/redefinição/leitura). connect-failure: o proxy vai tentar novamente em caso de falhas de conexão com o destino, por exemplo, devido a tempo limite de conexão. retriable-4xx: o proxy vai tentar novamente para códigos de resposta 4xx recuperáveis. No momento, o único erro retriável aceito é 409. refused-stream: o proxy vai tentar novamente se o destino redefinir a transmissão com um código de erro REFUSED_STREAM. Esse tipo de redefinição indica que é seguro tentar de novo. |
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 tentativa de repetição. Duração em segundos com até nove dígitos fracionários, terminando em " |
RequestMirrorPolicy
Especifica a política de como as solicitações são sombreadas 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 sombra, o cabeçalho host/autoridade recebe o sufixo -shadow.
Representação JSON |
---|
{
"destination": {
object ( |
Campos | |
---|---|
destination |
O destino para onde as solicitações serão espelhadas. O peso do destino será ignorado. |
mirrorPercent |
Opcional. A porcentagem de solicitações que vão ser espelhadas no destino desejado. |
CorsPolicy
Especificação para permitir solicitações entre origens 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 solicitações de CORS. Uma origem é 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 saber mais sobre 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-Expose-Headers. |
maxAge |
Especifica por quanto tempo o resultado de uma solicitação de simulação pode ser armazenado em cache em segundos. Isso se traduz no cabeçalho Access-Control-Max-Age. |
allowCredentials |
Em resposta a uma solicitação de simulação, definir esse valor como verdadeiro indica que a solicitação real pode incluir credenciais do usuário. Isso se traduz no cabeçalho Access-Control-Allow-Credentials. O valor padrão é falso. |
disabled |
Se for verdadeiro, a política de CORS será desativada. O valor padrão é "false", o que indica que a política CORS está em vigor. |
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, e cada solicitação que contém esse cookie é direcionada a esse host enquanto ele permanecer ativo e saudável.
A biblioteca de malha sem proxy do gRPC ou o proxy sidecar vai gerenciar 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 pode ser apenas de um dos tipos a seguir: |
|
stringBody |
Opcional. Corpo da resposta como uma string. O comprimento máximo do corpo é de 1.024 caracteres. |
bytesBody |
Opcional. Corpo da resposta em bytes. O tamanho máximo do corpo é 4096B. Uma string codificada em base64. |
Métodos |
|
---|---|
|
Cria uma nova HttpRoute em um determinado projeto e local. |
|
Exclui uma única HttpRoute. |
|
Recebe detalhes de um único HttpRoute. |
|
Busca a política de controle de acesso de um recurso. |
|
Lista HttpRoute em um determinado projeto e local. |
|
Atualiza os parâmetros de um único HttpRoute. |
|
Define a política de controle de acesso no recurso especificado. |
|
Retorna permissões do autor da chamada no recurso especificado. |