

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 de gateway
<a name="gateway-routes"></a>

**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.](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect) 

Uma rota de gateway é anexada a um gateway virtual e roteia o tráfego para um serviço virtual existente. Se uma rota corresponder a uma solicitação, ela poderá distribuir o tráfego para um serviço virtual de destino. Este tópico ajuda você a trabalhar com rotas de gateway em uma malha de serviços.

## Como criar uma rota de gateway
<a name="create-gateway-route"></a>

------
#### [ Console de gerenciamento da AWS ]

**Para criar uma rota de gateway usando o Console de gerenciamento da AWS**

1. Abra o console do App Mesh em [https://console.aws.amazon.com/appmesh/](https://console.aws.amazon.com/appmesh/). 

1. Selecione a malha na qual você deseja criar a rota de gateway. Todas as malhas que você possui e que foram [compartilhadas](sharing.md) com você estão listadas.

1. Escolha **Gateways virtuais** no painel de navegação à esquerda.

1. Selecione o gateway virtual ao qual você deseja associar uma nova rota de gateway. Se não houver nenhum, você precisará [criar um gateway virtual](virtual_gateways.md#create-virtual-gateway) primeiro. Você só pode criar uma rota de gateway para um gateway virtual cuja conta esteja listada como **Proprietária do recurso**.

1. Na tabela de **Rotas de gateway**, selecione **Criar rota de gateway**.

1. Em **Nome da rota do gateway**, especifique o nome a ser usado para a rota.

1. Para o **Tipo de rota de gateway**, selecione **http**, **http2** ou **grpc**.

1. Selecione um **nome de serviço virtual** existente. Se não houver nenhum, você precisará criar um [serviço virtual](virtual_services.md#create-virtual-service) primeiro.

1. Selecione a porta que corresponde ao destino em **Porta do provedor de serviços virtuais**. A porta do provedor de serviços virtuais é **necessária** quando o provedor (roteador ou nó) do serviço virtual selecionado tem vários receptores.

1. (Opcional) Em **Prioridade**, especifique a prioridade dessa rota de gateway.

1. Para a configuração da **Correspondência**, especifique:
   + 

     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 porta é **obrigatória** se esse gateway virtual tiver vários receptores.
     + (Opcional) **Nome de host exato/com sufixo**: especifica o nome do host que deve ser correspondente na solicitação recebida para rotear para o serviço virtual de destino.
     + **Prefix/Exact/RegexCaminho** (opcional) ‐ O método de correspondência do 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. 
**Importante**  
Você não pode especificar nenhum `/aws-appmesh*` ou `/aws-app-mesh*` para a **Correspondência de prefixo**. Esses prefixos são reservados para uso interno futuro do App Mesh.
Se várias rotas de gateway forem definidas, uma solicitação corresponderá à rota com o prefixo mais longo. Por exemplo, se existissem duas rotas de gateway, uma com prefixo de `/chapter` e outra com prefixo de `/`, uma solicitação de `www.example.com/chapter/` corresponderia à rota de gateway com o prefixo `/chapter`.
**nota**  
Se você habilitar a correspondência baseada no **Caminho**/**Prefixo**, o App Mesh habilita a normalização do caminho ([normalize\$1path](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-normalize-path) e [merge\$1slashes](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-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 só retorne a rota se o caminho for uma correspondência **EXATA** com a 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:
     + **Tipo de correspondência de nome de host** e (opcional) **Correspondência exata/de sufixo**: especifica o nome do host que deve ser correspondente na solicitação de entrada para rotear para o serviço virtual de destino. 
     + **nome do serviço grpc** ‐ O serviço **grpc** atua como uma API para seu aplicativo e é definido com. ProtoBuf
**Importante**  
Você não pode especificar `/aws.app-mesh*` ou `aws.appmesh` para o **Nome do serviço**. Esses nomes de serviço são reservados para uso interno futuro do App Mesh.
     + (Opcional) **Metadados**: especifica os metadados para **grpc**. Deve corresponder à solicitação recebida para rotear para o serviço virtual de destino.

1. (Opcional) Para **regravar** a configuração:
   + 

     Se **http/http2** for o tipo selecionado:
     + 

       Se **Prefixo** for o tipo de correspondência selecionado:
       + **Substituir regravação automática do nome do host**: por padrão, o nome do host é regravado no nome do serviço virtual de destino.
       + **Substituir a regravação automática do prefixo**: quando ativada, a **reescrita do prefixo** especifica o valor do prefixo regravado.
     + 

       Se **Caminho exato** for o tipo de correspondência selecionado:
       + **Substituir regravação automática do nome do host**: por padrão, o nome do host é regravado no nome do serviço virtual de destino.
       + **Regravação do caminho**: especifica o valor do caminho regravado. Sem caminho padrão.
     + 

       Se **Caminho Regex** for o tipo de correspondência selecionado:
       + **Substituir regravação automática do nome do host**: por padrão, o nome do host é regravado no nome do serviço virtual de destino.
       + **Regravação do caminho**: especifica o valor do caminho regravado. Sem caminho padrão.
   + 

     Se **grpc** for o tipo selecionado:
     + **Substituir regravação automática do nome do host**: por padrão, o nome do host é regravado no nome do serviço virtual de destino.

1. Selecione **Criar rota de gateway** para concluir.

------
#### [ AWS CLI ]

**Para criar uma rota de gateway usando a AWS CLI.**

Crie uma rota de gateway usando o seguinte comando e insira JSON (substitua *red* os valores pelos seus):

1. 

   ```
   aws appmesh create-virtual-gateway \ 
   --mesh-name meshName \ 
   --virtual-gateway-name virtualGatewayName \
   --gateway-route-name gatewayRouteName \ 
   --cli-input-json file://create-gateway-route.json
   ```

1. Conteúdo do **exemplo** create-gateway-route .json:

   ```
   {
       "spec": {
           "httpRoute" : {
               "match" : {
                   "prefix" : "/"
               },
               "action" : {
                   "target" : {
                       "virtualService": {
                           "virtualServiceName": "serviceA.svc.cluster.local"
                       }
                   }
               }
           }
       }
   }
   ```

1. Resultado do exemplo:

   ```
   {
       "gatewayRoute": {
           "gatewayRouteName": "gatewayRouteName",
           "meshName": "meshName",
           "metadata": {
               "arn": "arn:aws:appmesh:us-west-2:210987654321:mesh/meshName/virtualGateway/virtualGatewayName/gatewayRoute/gatewayRouteName",
               "createdAt": "2022-04-06T11:05:32.100000-05:00",
               "lastUpdatedAt": "2022-04-06T11:05:32.100000-05:00",
               "meshOwner": "123456789012",
               "resourceOwner": "210987654321",
               "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
               "version": 1
           },
           "spec": {
               "httpRoute": {
                   "action": {
                       "target": {
                           "virtualService": {
                               "virtualServiceName": "serviceA.svc.cluster.local"
                           }
                       }
                   },
                   "match": {
                       "prefix": "/"
                   }
               }
           },
           "status": {
               "status": "ACTIVE"
           },
           "virtualGatewayName": "gatewayName"
       }
   }
   ```

Para obter mais informações sobre como criar uma rota de gateway com o AWS CLI for App Mesh, consulte o [create-gateway-route](https://docs.aws.amazon.com/cli/latest/reference/appmesh/create-gateway-route.html)comando na AWS CLI referência.

------

## Como excluir uma rota de gateway
<a name="delete-gateway-route"></a>

------
#### [ Console de gerenciamento da AWS ]

**Para excluir uma rota de gateway usando o Console de gerenciamento da AWS**

1. Abra o console do App Mesh em [https://console.aws.amazon.com/appmesh/](https://console.aws.amazon.com/appmesh/). 

1. Selecione a malha da qual você deseja excluir uma rota de gateway. Todas as malhas que você possui e que foram [compartilhadas](sharing.md) com você estão listadas.

1. Escolha **Gateways virtuais** no painel de navegação à esquerda.

1. Selecione o gateway virtual do qual você deseja excluir uma rota de gateway.

1. Na tabela de **rotas do gateway**, selecione a rota do gateway que você deseja excluir e selecione **Excluir**. Você só pode excluir uma rota de gateway se sua conta estiver listada como **Proprietária do recurso**.

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

------
#### [ AWS CLI ]

**Para excluir uma rota de gateway usando o AWS CLI**

1. Use o comando a seguir para excluir sua rota de gateway (substitua *red* os valores pelos seus):

   ```
   aws appmesh delete-gateway-route \
        --mesh-name meshName \
        --virtual-gateway-name virtualGatewayName \
        --gateway-route-name gatewayRouteName
   ```

1. Resultado do exemplo:

   ```
   {
       "gatewayRoute": {
           "gatewayRouteName": "gatewayRouteName",
           "meshName": "meshName",
           "metadata": {
               "arn": "arn:aws:appmesh:us-west-2:210987654321:mesh/meshName/virtualGateway/virtualGatewayName/gatewayRoute/gatewayRouteName",
               "createdAt": "2022-04-06T11:05:32.100000-05:00",
               "lastUpdatedAt": "2022-04-07T10:36:33.191000-05:00",
               "meshOwner": "123456789012",
               "resourceOwner": "210987654321",
               "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
               "version": 2
           },
           "spec": {
               "httpRoute": {
                   "action": {
                       "target": {
                           "virtualService": {
                               "virtualServiceName": "serviceA.svc.cluster.local"
                           }
                       }
                   },
                   "match": {
                       "prefix": "/"
                   }
               }
           },
           "status": {
               "status": "DELETED"
           },
           "virtualGatewayName": "virtualGatewayName"
       }
   }
   ```

Para obter mais informações sobre como excluir uma rota de gateway com o AWS CLI for App Mesh, consulte o [delete-gateway-route](https://docs.aws.amazon.com/cli/latest/reference/appmesh/delete-gateway-route.html)comando na AWS CLI referência.

------