Rotas - AWS App Mesh

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Rotas

Importante

Aviso de fim do suporte: em 30 de setembro de 2026, AWS o suporte para o. AWS App Mesh Depois de 30 de setembro de 2026, você não poderá mais acessar o AWS App Mesh console ou os AWS App Mesh recursos. Para obter mais informações, visite esta postagem no blog Migrando do AWS App Mesh Amazon ECS Service Connect.

A rota está associada a um roteador virtual. A rota é usada para atender às solicitações do roteador virtual e distribuir o tráfego para os nós virtuais associados. Se uma rota corresponder a uma solicitação, ela poderá distribuir o tráfego para um ou mais nós virtuais de destino. Você pode especificar o peso relativo para cada nó virtual. Este tópico ajuda você a trabalhar com rotas em uma malha de serviços.

Criar uma rota

AWS Management Console
Para criar uma rota usando o AWS Management Console
  1. Abra o console do App Mesh em https://console.aws.amazon.com/appmesh/.

  2. Escolha a malha na qual deseja criar a rota. Todas as malhas que você possui e que foram compartilhadas com você estão listadas.

  3. Selecione Virtual routers (Roteadores virtuais) no painel de navegação à esquerda.

  4. Escolha o roteador ao qual deseja associar uma nova rota. Se nenhum estiver listado, você precisará criar um roteador virtual primeiro.

  5. Na tabela Routes (Rotas), selecione Create route (Criar rota). Para criar uma rota, o ID da conta deve estar listado como o Proprietário do recurso da rota.

  6. Em Route name (Nome da rota), especifique o nome a ser usado para a rota.

  7. Em Tipo de rota, escolha o protocolo que deseja para a rota. O protocolo que selecionar deve corresponder ao protocolo do receptor selecionado para o roteador virtual e o nó virtual para o qual você está roteando o tráfego.

  8. (Opcional) Em Prioridade da rota, especifique uma prioridade de 0 a 1000 para usar em sua rota. A correspondência das rotas é feita com base em um valor especificado, e 0 é a prioridade mais alta.

  9. (Opcional) Escolha Configuração adicional. Nos protocolos abaixo, escolha o protocolo que você selecionou para Tipo de rota e especifique as configurações no console conforme desejado.

  10. Para Configuração de destino, selecione o nó virtual existente do App Mesh para direcionar o tráfego e especificar um Peso. Você pode escolher Adicionar destino para adicionar mais destinos. A porcentagem de todos os destinos deve somar 100. Se nenhum nó virtual estiver listado, você deverá criar um primeiro. Se o nó virtual selecionado tiver vários receptores, a Porta de destino será necessária.

  11. Para a configuração da Correspondência, especifique:

    A configuração de correspondência não está disponível para tcp

    • Se http/http2 for o tipo selecionado:

      • (Opcional) Método: especifica o cabeçalho do método a ser correspondido nas solicitações de entrada http/http2.

      • (Opcional) Correspondência de porta: corresponde a porta para o tráfego de entrada. A correspondência de portas é necessária se esse roteador virtual tiver vários receptores.

      • (Opcional) Caminho prefixo/exato/regex ‐ método de correspondência com o caminho do. URL

        • Correspondência de prefixo: uma solicitação correspondente por uma rota de gateway é regravada no nome do serviço virtual de destino e o prefixo correspondente é regravado, por padrão como /. Dependendo de como você configura seu serviço virtual, ele pode usar um roteador virtual para rotear a solicitação para diferentes nós virtuais, com base em prefixos ou cabeçalhos específicos.

          nota

          Se você habilitar a correspondência baseada no Caminho/Prefixo, o App Mesh habilita a normalização do caminho (normalize_path e merge_slashes) para minimizar a probabilidade de vulnerabilidades de confusão de caminhos.

          As vulnerabilidades de confusão de caminhos ocorrem quando as partes que participam da solicitação usam representações de caminho diferentes.

        • Correspondência exata ‐ o parâmetro exato desativa a correspondência parcial de uma rota e garante que ela retorne a rota somente se o caminho EXACT corresponder ao URL atual.

        • Regex match ‐ usado para descrever padrões em que vários URLs podem realmente identificar uma única página no site.

      • (Opcional) Parâmetros de consulta: esse campo permite que você faça a correspondência com os parâmetros da consulta.

      • (Opcional) Cabeçalhos: especifica os cabeçalhos para http e http2. Ele deve corresponder à solicitação de entrada para rotear para o serviço virtual de destino.

    • Se grpc for o tipo selecionado:

      • Nome do serviço: o serviço de destino ao qual corresponder à solicitação.

      • Nome do método: o método de destino ao qual corresponder à solicitação.

      • (Opcional) Metadados: especifica a Match com base na presença de metadados. Todos devem corresponder para que a solicitação seja processada.

  12. Selecione Criar rota.

AWS CLI

Para criar uma rota usando a AWS CLI.

Crie uma RPC rota g usando o comando e a entrada a seguir JSON (substitua o red valores com os seus):

  1. aws appmesh create-route \ --cli-input-json file://create-route-grpc.json
  2. Conteúdo do exemplo create-route-grpc .json

    { "meshName" : "meshName", "routeName" : "routeName", "spec" : { "grpcRoute" : { "action" : { "weightedTargets" : [ { "virtualNode" : "nodeName", "weight" : 100 } ] }, "match" : { "metadata" : [ { "invert" : false, "match" : { "prefix" : "123" }, "name" : "myMetadata" } ], "methodName" : "nameOfmethod", "serviceName" : "serviceA.svc.cluster.local" }, "retryPolicy" : { "grpcRetryEvents" : [ "deadline-exceeded" ], "httpRetryEvents" : [ "server-error", "gateway-error" ], "maxRetries" : 3, "perRetryTimeout" : { "unit" : "s", "value" : 15 }, "tcpRetryEvents" : [ "connection-error" ] } }, "priority" : 100 }, "virtualRouterName" : "routerName" }
  3. Resultado do exemplo:

    { "route": { "meshName": "meshName", "metadata": { "arn": "arn:aws:appmesh:us-west-2:210987654321:mesh/meshName/virtualRouter/routerName/route/routeName", "createdAt": "2022-04-06T13:48:20.749000-05:00", "lastUpdatedAt": "2022-04-06T13:48:20.749000-05:00", "meshOwner": "123456789012", "resourceOwner": "210987654321", "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 1 }, "routeName": "routeName", "spec": { "grpcRoute": { "action": { "weightedTargets": [ { "virtualNode": "nodeName", "weight": 100 } ] }, "match": { "metadata": [ { "invert": false, "match": { "prefix": "123" }, "name": "myMetadata" } ], "methodName": "nameOfMehod", "serviceName": "serviceA.svc.cluster.local" }, "retryPolicy": { "grpcRetryEvents": [ "deadline-exceeded" ], "httpRetryEvents": [ "server-error", "gateway-error" ], "maxRetries": 3, "perRetryTimeout": { "unit": "s", "value": 15 }, "tcpRetryEvents": [ "connection-error" ] } }, "priority": 100 }, "status": { "status": "ACTIVE" }, "virtualRouterName": "routerName" } }

Para obter mais informações sobre como criar uma rota com o AWS CLI for App Mesh, consulte o comando create-route na referência. AWS CLI

(Opcional) Correspondência

  • (Opcional) Insira o Nome do serviço do serviço de destino ao qual corresponder a solicitação. Se você não especificar um nome, as solicitações para qualquer serviço serão correspondidas.

  • (Opcional) Insira o Nome do método do método de destino ao qual corresponder a solicitação. Se você não especificar um nome, as solicitações para qualquer método serão correspondidas. Se você especificar um nome do método, deverá especificar um nome do serviço.

(Opcional) Metadados

Escolha Add Metadata (Adicionar metadados).

  • (Opcional) Insira o Nome dos metadados nos quais você deseja rotear, selecione um Tipo de correspondência e insira um Valor de correspondência. Selecionar Inverter corresponderá ao oposto. Por exemplo, se você especificar um Nome dos metadados de myMetadata, um Tipo de correspondência de Exato, um Valor de correspondência de 123 e selecionar Inverter, a rota será correspondida para qualquer solicitação que tenha um nome dos metadados que comece com algo diferente de 123.

  • (Opcional) Selecione Adicionar metadados para adicionar até dez itens de metadados.

(Opcional) Política de novas tentativas

Uma política de repetição permite que os clientes se protejam contra falhas de rede intermitentes ou falhas intermitentes no lado do servidor. Uma política de novas tentativas é opcional, mas recomendada. Os valores de tempo limite de novas tentativas definem o tempo limite por nova tentativa (incluindo a tentativa inicial). Se você não definir uma política de novas tentativas, o App Mesh poderá criar automaticamente uma política padrão para cada uma de suas rotas. Para obter mais informações, consulte Política padrão de tentativas de rotas.

  • Em Tempo limite de novas tentativas, insira o número de unidades para a duração do tempo limite. Um valor é necessário se você selecionar qualquer evento de tentativa de protocolo.

  • Em Unidade do tempo limite de novas tentativas, selecione uma unidade. Um valor é necessário se você selecionar qualquer evento de tentativa de protocolo.

  • Em Máximo de novas tentativas, insira o número máximo de novas tentativas quando a solicitação falhar. Um valor é necessário se você selecionar qualquer evento de tentativa de protocolo. Recomendamos um valor de pelo menos dois.

  • Selecione um ou mais eventos de HTTP repetição. Recomendamos selecionar pelo menos stream-error e gateway-error.

  • Selecione um evento TCP de nova tentativa.

  • Selecione um ou mais eventos g RPC retry. Recomendamos selecionar pelo menos cancelado e indisponível.

(Opcional) Tempos limite

  • O padrão é 15 segundos. Se você especificou uma Política de novas tentativas, a duração especificada aqui sempre deverá ser maior ou igual à duração da nova tentativa multiplicada pelo Máximo de novas tentativas definido na Política de novas tentativas para que sua política de novas tentativas possa ser concluída. Se você especificar uma duração maior que 15 segundos, certifique-se de que o tempo limite especificado para o receptor de qualquer nó virtual de Destino também seja maior que 15 segundos. Para obter mais informações, consulte Nós virtuais.

  • Um valor de 0 desabilita o tempo limite.

  • O valor de tempo máximo em que a rota pode ficar ociosa.

(Opcional) Correspondência

  • Especifique o Prefixo ao qual a rota deve corresponder. Por exemplo, se o nome do serviço virtual for service-b.local e você desejar que a rota corresponda as solicitações a service-b.local/metrics, seu prefixo deverá ser /metrics. Especificar rotas / para todo o tráfego.

  • (Opcional) Selecione um Método.

  • (Opcional) Selecione um Esquema. Aplicável somente para HTTP2 rotas.

(Opcional) Cabeçalhos

  • (Opcional) Selecione Adicionar cabeçalho. Insira o Nome do cabeçalho no qual você deseja rotear, selecione um Tipo de correspondência e insira um Valor de correspondência. Selecionar Inverter corresponderá ao oposto. Por exemplo, se você especificar um cabeçalho chamado clientRequestId com um Prefixo de 123 e selecionar Inverter, a rota corresponderá a qualquer solicitação que tenha um cabeçalho que comece com algo diferente de 123.

  • (Opcional) Selecione Adicionar cabeçalho. Você pode adicionar até dez cabeçalhos.

(Opcional) Política de novas tentativas

Uma política de repetição permite que os clientes se protejam contra falhas de rede intermitentes ou falhas intermitentes no lado do servidor. Uma política de novas tentativas é opcional, mas recomendada. Os valores de tempo limite de novas tentativas definem o tempo limite por nova tentativa (incluindo a tentativa inicial). Se você não definir uma política de novas tentativas, o App Mesh poderá criar automaticamente uma política padrão para cada uma de suas rotas. Para obter mais informações, consulte Política padrão de tentativas de rotas.

  • Em Tempo limite de novas tentativas, insira o número de unidades para a duração do tempo limite. Um valor é necessário se você selecionar qualquer evento de tentativa de protocolo.

  • Em Unidade do tempo limite de novas tentativas, selecione uma unidade. Um valor é necessário se você selecionar qualquer evento de tentativa de protocolo.

  • Em Máximo de novas tentativas, insira o número máximo de novas tentativas quando a solicitação falhar. Um valor é necessário se você selecionar qualquer evento de tentativa de protocolo. Recomendamos um valor de pelo menos dois.

  • Selecione um ou mais eventos de HTTP repetição. Recomendamos selecionar pelo menos stream-error e gateway-error.

  • Selecione um evento TCP de nova tentativa.

(Opcional) Tempos limite

  • Tempo limite da solicitação: o padrão é 15 segundos. Se você especificou uma Política de novas tentativas, a duração especificada aqui sempre deverá ser maior ou igual à duração da nova tentativa multiplicada pelo Máximo de novas tentativas definido na Política de novas tentativas para que sua política de novas tentativas possa ser concluída.

  • Duração do tempo ocioso: o padrão é 300 segundos.

  • Um valor de 0 desabilita o tempo limite.

nota

Se você especificar um tempo limite maior que o padrão, certifique-se de que o tempo limite especificado para o receptor para todos os participantes do nó virtual também seja maior que o padrão. No entanto, se você diminuir o tempo limite para um valor menor que o padrão, é opcional atualizar os tempos limite nos nós virtuais. Para obter mais informações, consulte Nós virtuais.

(Opcional) Tempos limite

  • Duração do tempo ocioso: o padrão é 300 segundos.

  • Um valor de 0 desabilita o tempo limite.

Excluir uma rota

AWS Management Console
Para excluir uma rota usando o AWS Management Console
  1. Abra o console do App Mesh em https://console.aws.amazon.com/appmesh/.

  2. Escolha a malha da qual você deseja excluir uma rota. Todas as malhas que você possui e que foram compartilhadas com você estão listadas.

  3. Selecione Virtual routers (Roteadores virtuais) no painel de navegação à esquerda.

  4. Escolha o roteador do qual você deseja excluir uma rota.

  5. Na tabela Rotas, escolha a rota que você deseja excluir e selecione Excluir no canto superior direito.

  6. Na caixa de confirmação, digite delete e clique em Excluir.

AWS CLI
Para excluir uma rota usando o AWS CLI
  1. Use o comando a seguir para excluir sua rota (substitua o red valores com os seus):

    aws appmesh delete-route \ --mesh-name meshName \ --virtual-router-name routerName \ --route-name routeName
  2. Resultado do exemplo:

    { "route": { "meshName": "meshName", "metadata": { "arn": "arn:aws:appmesh:us-west-2:210987654321:mesh/meshName/virtualRouter/routerName/route/routeName", "createdAt": "2022-04-06T13:46:54.750000-05:00", "lastUpdatedAt": "2022-04-07T10:43:57.152000-05:00", "meshOwner": "123456789012", "resourceOwner": "210987654321", "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 2 }, "routeName": "routeName", "spec": { "grpcRoute": { "action": { "weightedTargets": [ { "virtualNode": "nodeName", "weight": 100 } ] }, "match": { "metadata": [ { "invert": false, "match": { "prefix": "123" }, "name": "myMetadata" } ], "methodName": "methodName", "serviceName": "serviceA.svc.cluster.local" }, "retryPolicy": { "grpcRetryEvents": [ "deadline-exceeded" ], "httpRetryEvents": [ "server-error", "gateway-error" ], "maxRetries": 3, "perRetryTimeout": { "unit": "s", "value": 15 }, "tcpRetryEvents": [ "connection-error" ] } }, "priority": 100 }, "status": { "status": "DELETED" }, "virtualRouterName": "routerName" } }

Para obter mais informações sobre como excluir uma rota com o AWS CLI for App Mesh, consulte o comando delete-route na referência. AWS CLI