Adicionar regras a um gateway
As regras de gateway permitem que você controle o roteamento de tráfego e substitua as configurações de destino em seu gateway sem reimplantar alvos. Você cria pacotes de configuração que substituem o comportamento de um alvo e, em seguida, usa regras para controlar qual versão do pacote se aplica a qual tráfego. As regras também oferecem suporte ao roteamento de solicitações para destinos diferentes com base no caminho da solicitação ou na identidade do chamador.
Use as regras de gateway para atingir as seguintes metas:
-
Experimente as versões do pacote de configuração por meio de A/B testes
-
Fixe princípios específicos em uma versão do pacote de configuração para depuração
-
Roteie o tráfego para alvos específicos com base no caminho da solicitação ou na identidade do chamador
-
Defina um pacote ou destino de configuração padrão para todo o tráfego
Como as regras de gateway funcionam
Cada regra de gateway contém os seguintes componentes:
| Componente | Description |
|---|---|
|
Prioridade |
Um número inteiro de 1 a 1.000.000. Números mais baixos indicam maior precedência. Cada valor de prioridade deve ser exclusivo em um gateway. |
|
Condições (opcional) |
Critérios que determinam se a regra corresponde a uma solicitação. Uma regra sem condições atua como uma regra abrangente que corresponde a todo o tráfego. |
|
Ações (obrigatórias) |
A ação a ser tomada quando a regra coincide. Você pode substituir pacotes de configuração, rotear para destinos específicos ou ambos. |
|
Descrição (opcional) |
Uma descrição em texto da finalidade da regra. |
Resolução de regras
O gateway avalia as regras em ordem crescente de prioridade (números mais baixos primeiro). O gateway resolve cada tipo de ação de forma independente usando a semântica de primeira correspondência.
A tabela a seguir mostra como o gateway resolve regras para uma solicitação de amostra. Neste exemplo, a função de controle de qualidade envia uma solicitação para/my-target-canary/chat.
| Prioridade | Condições | Ações | Solicitação de correspondências? | Resultado |
|---|---|---|---|---|
|
100 |
Papel de controle de qualidade |
|
Sim |
Resolve |
|
200 |
Caminho |
|
Sim |
Resolve para |
|
1000000 |
Nenhum (abrangente) |
|
Sim |
Ambos os tipos de ação já foram resolvidos. Ignorado. |
Resultado final: a solicitação usa a versão A do pacote e encaminha para o. my-target-canary
dica
Deixe espaços entre os números de prioridade (por exemplo, 100, 200, 300) para que você possa inserir regras posteriormente sem renumerar as regras existentes.
Condições
As condições determinam a quais solicitações uma regra corresponde. Uma regra pode ter no máximo 2 condições. Uma regra sem condições corresponde a todo o tráfego.
O gateway suporta os seguintes tipos de condições:
- Diretores da partida
-
Corresponde às solicitações com base no IAM principal do chamador. A
anyOflista contém de 1 a 100 entradas. Cada entrada especifica umiamPrincipalcom os seguintes campos:-
arn— O ARN principal do IAM correspondente. -
operator(opcional) — O operador de comparação. Os valores válidos sãoStringEquals(padrão) eStringLike. UseStringLikepara correspondência de curingas.
-
- Caminhos de correspondência
-
Corresponde às solicitações com base no caminho da solicitação. A
anyOflista contém de 1 a 10 entradas. Cada entrada deve usar o formato/<targetName>/*, onde<targetName>corresponde ao nome de um destino HTTP existente no gateway. O alvo deve estar noReadyestado. AmatchPathscondição é suportada somente para gateways com destinos HTTP. Os seguintes prefixos de caminho reservados não são permitidos:/mcp,/a2a,,/responses/converse,/.well-known.
Lógica de avaliação da condição
-
Dentro de um tipo de condição: o gateway usa a lógica OR. Uma solicitação corresponde se satisfaz alguma entrada na
anyOflista. -
Em todos os tipos de condições: o gateway usa a lógica AND. Se uma regra tiver ambos
matchPrincipalsematchPaths, a solicitação deverá corresponder a pelo menos uma entrada de cada tipo de condição.
Ações
As ações definem o que o gateway faz quando uma regra corresponde. Uma regra pode ter no máximo 2 ações.
O gateway suporta os seguintes tipos de ação:
- Substituições do pacote de configuração ()
configurationBundle -
Substitua o pacote de configuração aplicado ao tráfego correspondente.
-
staticOverride— Fixa todo o tráfego correspondente em uma versão específica do pacote de configuração. Especifique o ARN do pacote e o ID da versão. -
weightedOverride— Divide o tráfego entre duas versões do pacote de configuração. AtrafficSplitlista deve conter exatamente 2 entradas com pesos que somam 100. O pacote de configuração deve estar na mesma conta do gateway.
-
- Roteamento de destino ()
routeToTarget -
Rotas que combinam o tráfego com um alvo específico. O destino deve usar o protocolo HTTP e estar no
Readyestado.-
staticRoute— Encaminha todo o tráfego correspondente para um alvo específico por nome. -
weightedRoute— Divide o tráfego entre dois alvos. AtrafficSplitlista deve conter exatamente 2 entradas com pesos que somam 100. Os nomes das entradas de divisão de tráfego devem ser exclusivos.
-
Limites
A tabela a seguir lista os limites das regras de gateway.
| Recurso | Limite |
|---|---|
|
Regras por gateway |
20 |
|
Faixa de prioridade |
1 a 1.000.000 |
|
Condições máximas por regra |
2 |
|
Máximo de ações por regra |
2 |
|
|
100 |
|
|
10 |
|
|
Exatamente 2 |
|
|
1 a 99 |