

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á.

# Gateways virtuais
<a name="virtual_gateways"></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) 

Um gateway virtual permite que recursos fora da sua malha se comuniquem com recursos que estão dentro da sua malha. O gateway virtual representa um proxy Envoy em execução em um serviço Amazon ECS, em um serviço Kubernetes ou em uma instância da Amazon. EC2 Ao contrário de um nó virtual, que representa um Envoy em execução com um aplicativo, um gateway virtual representa o Envoy implantado por si mesmo. 

Os recursos externos devem ser capazes de resolver um nome do DNS para um endereço IP atribuído ao serviço ou instância que executa o Envoy. O Envoy pode então acessar toda a configuração do App Mesh para os recursos que estão dentro da malha. A configuração para lidar com as solicitações de entrada no gateway virtual é especificada usando [Rotas do gateway](https://docs.aws.amazon.com/app-mesh/latest/userguide/gateway-routes.html).

**Importante**  
Um gateway virtual com HTTP ou HTTP2 ouvinte reescreve o nome do host da solicitação recebida no nome do Serviço Virtual de destino do Gateway Route, e o prefixo correspondente da Rota do Gateway é regravado, por padrão. `/` Por exemplo, se você configurou o prefixo de correspondência da Rota do gateway como `/chapter`, se a solicitação de entrada for `/chapter/1`, a solicitação será regravada para `/1`. Para configurar regravações, consulte a seção [Criar uma rota de gateway](https://docs.aws.amazon.com/app-mesh/latest/userguide/gateway-routes.html#create-gateway-route) em Rotas do gateway.  
Ao criar um gateway virtual, `proxyConfiguration` e `user` não devem ser configurados.

Para concluir um end-to-end passo a passo, consulte [Configurando](https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-ingress-gateway) o gateway de entrada.

## Criar um gateway virtual
<a name="create-virtual-gateway"></a>

**nota**  
Ao criar um gateway virtual, você deve adicionar um Seletor de namespace com um rótulo para identificar a lista de namespaces aos quais associar Rotas do gateway ao Gateway virtual criado.

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

**Para criar um gateway virtual 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. Escolha a malha na qual você deseja criar o gateway virtual. 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. Escolha **Criar gateway virtual**.

1. Em **Nome do gateway virtual**, insira um nome para o seu gateway virtual.

1. (Opcional, mas recomendado) Configurar os **Padrões de política de cliente**.

   1. (Opcional) Selecione **Impor o TLS** se quiser exigir que o gateway só se comunique com os serviços virtuais usando Transport Layer Security (TLS).

   1. (Opcional) Para **Portas**, especifique uma ou mais portas nas quais você deseja impor o TLS na comunicação com serviços virtuais.

   1. Para **Método de validação**, selecione uma das opções a seguir. O certificado especificado já deve existir e atender aos requisitos específicos. Para obter mais informações, consulte [Requisitos de certificado](tls.md#virtual-node-tls-prerequisites).
      + Hospedagem da **Autoridade de Certificação Privada da AWS**: selecione um ou mais **Certificados** existentes.
      + **Envoy Secret Discovery Service (SDS)** hosting: digite o nome do segredo para o Envoy buscar usando o Secret Discovery Service.
      + **Hospedagem de arquivos local**: especifique o caminho para o arquivo da **Cadeia de certificados** no sistema de arquivos em que o Envoy está implantado.

   1. (Opcional) Insira um **Nome alternativo do assunto**. Para adicionar mais SANs, selecione **Adicionar SAN**. SANs deve ser formatado em FQDN ou URI.

   1. (Opcional) Selecione **Fornecer certificado de cliente** e uma das opções abaixo para fornecer um certificado de cliente quando um servidor o solicitar e habilitar a autenticação de TLS mútuo. Para saber mais sobre o TLS mútuo, consulte os documentos de [Autenticação de TLS mútuo](https://docs.aws.amazon.com/app-mesh/latest/userguide/mutual-tls.html) do App Mesh.
      + **Envoy Secret Discovery Service (SDS)** hosting: digite o nome do segredo para o Envoy buscar usando o Secret Discovery Service.
      + **Hospedagem de arquivos local**: especifique o caminho para o arquivo da **Cadeia de certificados** como a **Chave privada**, no sistema de arquivos em que o Envoy está implantado. Para ver um resumo completo da implantação de uma malha com um aplicativo de amostra usando criptografia com arquivos locais, consulte [Configurando o TLS com certificados TLS fornecidos pelo arquivo ativados](https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-tls-file-provided). end-to-end GitHub

1. (Opcional) Para configurar o registro em log, selecione **Registro**. Insira o **caminho dos logs de acesso HTTP** que você deseja que o Envoy use. Recomendamos o `/dev/stdout` caminho para que você possa usar os drivers de log do Docker para exportar seus registros do Envoy para um serviço como o Amazon Logs. CloudWatch 
**nota**  
Os logs ainda devem ser ingeridos por um agente no seu aplicativo e enviados para um destino. Esse caminho de arquivo apenas informa ao Envoy para onde os logs devem ser enviados. 

1. Configure o **Receptor**.

   1. Selecione um **Protocolo** e especifique a **Porta** na qual o Envoy recebe o tráfego. O receptor **http** permite a transição da conexão para websockets. Você pode clicar em **Adicionar receptor** para adicionar vários receptores. O botão **Remover** removerá esse receptor.

   1. (Opcional) **Habilitar grupo de conexões** 

      O pooling de conexões limita o número de conexões que o Envoy do gateway virtual pode estabelecer simultaneamente. O objetivo é proteger sua instância do Envoy de ficar sobrecarregada com conexões e permitir que você ajuste a modelagem de tráfego de acordo com as necessidades dos seus aplicativos.

      Você pode definir as configurações do grupo de conexões do lado do destino para um receptor de gateway virtual. O App Mesh define as configurações do grupo de conexões do lado do cliente como infinitas por padrão, simplificando a configuração da malha.
**nota**  
Os protocolos portMapping `connectionPool` e `connectionPool` devem ser os mesmos. Se o protocolo do seu receptor for `grpc` ou `http2`, especifique `maxRequests` somente. Se o protocolo do seu receptor for `http`, você poderá especificar ambos, `maxConnections` e `maxPendingRequests`. 
      + Em **Máximo de conexões**, especifique o número máximo de conexões de saída.
      + Em **Máximo de solicitações**, especifique o número máximo de solicitações paralelas que podem ser estabelecidas com o Envoy do gateway virtual.
      + (Opcional) Para **Máximo de solicitações pendentes**, especifique o número de solicitações excedentes após o **Máximo de conexões** que um Envoy coloca na fila. O valor padrão é `2147483647`.

   1. (Opcional) Se você quiser configurar uma verificação de integridade para seu receptor, selecione **Habilitar a verificação de integridade**.

      Uma política de verificação de integridade é opcional, mas se você especificar qualquer valor para uma política de integridade, deverá especificar valores para **Limite de integridade**, **Intervalo de verificação de integridade**, **Protocolo de verificação de integridade**, **Tempo limite** e **Limite de integridade inadequada**.
      + Em **Protocolo de verificação de integridade**, escolha um protocolo. Se você selecionar **grpc**, o serviço deverá estar em conformidade com o [Protocolo de verificação de integridade GRPC](https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
      + Em **Health check port (Porta de verificação de integridade)**, especifique a porta em que a verificação de integridade deve ser executada.
      + Em **Healthy threshold (Limite de integridade)**, especifique o número de verificações de integridade consecutivas bem-sucedidas que deve ocorrer antes de o listener ser declarado íntegro.
      + Em **Health check interval (Intervalo de verificação de integridade)**, especifique o período em milissegundos entre cada execução de verificação de integridade.
      + Em **Path (Caminho)**, especifique o caminho de destino para a solicitação de verificação de integridade. Esse valor é usado somente se o **Protocolo de verificação de integridade** for `http` ou `http2`. O valor é ignorado para outros protocolos.
      + Em **Período de tempo limite**, especifique tempo de espera ao receber uma resposta da verificação de integridade, em milissegundos.
      + Em **Unhealthy threshold (Limite de não integridade)**, especifique o número de verificações de integridade consecutivas com falha que deve ocorrer antes de o listener ser declarado não íntegro.

   1. (Opcional) Se você quiser especificar se os clientes se comunicam com esse gateway virtual usando TLS, selecione **Habilitar encerramento do TLS**.
      + Em **Modo**, selecione o modo no qual você deseja que o TLS seja configurado no receptor.
      + Em **Método de certificado**, selecione uma das seguintes opções. O certificado deve atender aos requisitos específicos. Para obter mais informações, consulte [Requisitos de certificado](tls.md#virtual-node-tls-prerequisites).
        + **AWS Certificate Manager hospedagem** — Selecione um **certificado** existente.
        + **Envoy Secret Discovery Service (SDS)** hosting: digite o nome do segredo para o Envoy buscar usando o Secret Discovery Service.
        + **Hospedagem de arquivos local**: especifique o caminho para os arquivos da **Cadeia de certificados** e da **Chave privada** no sistema de arquivos em que o Envoy está implantado.
      + (Opcional) Selecione **Exigir certificado de cliente** e uma das opções abaixo para habilitar a autenticação de TLS mútuo quando um cliente fornecer um certificado. Para saber mais sobre o TLS mútuo, consulte os documentos de [Autenticação de TLS mútuo](https://docs.aws.amazon.com/app-mesh/latest/userguide/mutual-tls.html) do App Mesh.
        + **Envoy Secret Discovery Service (SDS)** hosting: digite o nome do segredo para o Envoy buscar usando o Secret Discovery Service.
        + **Hospedagem de arquivos local**: especifique o caminho para o arquivo da **Cadeia de certificados** no sistema de arquivos em que o Envoy está implantado.
      + (Opcional) Insira um **Nome alternativo do assunto**. Para adicionar mais SANs, selecione **Adicionar SAN**. SANs deve ser formatado em FQDN ou URI.

1. Escolha **Criar gateway virtual** para concluir.

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

**Para criar um gateway virtual usando a AWS CLI.**

Crie um gateway virtual usando o seguinte comando e insira JSON (substitua os *red* valores pelos seus):

1. 

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

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

   ```
   {
       "spec": {
         "listeners": [
           {
             "portMapping": {
               "port": 9080,
               "protocol": "http"
             }
           }
         ]
       }
   }
   ```

1. Resultado do exemplo:

   ```
   {
       "virtualGateway": {
           "meshName": "meshName",
           "metadata": {
               "arn": "arn:aws:appmesh:us-west-2:123456789012:mesh/meshName/virtualGateway/virtualGatewayName",
               "createdAt": "2022-04-06T10:42:42.015000-05:00",
               "lastUpdatedAt": "2022-04-06T10:42:42.015000-05:00",
               "meshOwner": "123456789012",
               "resourceOwner": "123456789012",
               "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
               "version": 1
           },
           "spec": {
               "listeners": [
                   {
                       "portMapping": {
                           "port": 9080,
                           "protocol": "http"
                       }
                   }
               ]
           },
           "status": {
               "status": "ACTIVE"
           },
           "virtualGatewayName": "virtualGatewayName"
       }
   }
   ```

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

------

## Implementar um gateway virtual
<a name="deploy-virtual-gateway"></a>

Implante um serviço Amazon ECS ou Kubernetes que contenha somente o [contêiner do Envoy](envoy.md). Você também pode implantar o contêiner Envoy em uma instância da Amazon EC2. Para obter mais informações, consulte [Introdução ao App Mesh e à Amazon EC2](https://docs.aws.amazon.com/app-mesh/latest/userguide/getting-started-ec2.html). Para obter mais informações sobre como implantar no Amazon ECS, consulte [Conceitos básicos do App Mesh e do Amazon ECS](https://docs.aws.amazon.com/app-mesh/latest/userguide/getting-started-ecs.html) ou [Conceitos básicos do AWS App Mesh e do Kubernetes](https://docs.aws.amazon.com/app-mesh/latest/userguide/getting-started-kubernetes.html) para implantar no Kubernetes. Você precisa definir a variável de ambiente `APPMESH_RESOURCE_ARN` como `mesh/mesh-name/virtualGateway/virtual-gateway-name` e não especificar a configuração do proxy para que o tráfego do proxy não seja redirecionado para ele mesmo. Por padrão, o App Mesh usa o nome do recurso especificado em `APPMESH_RESOURCE_ARN` quando o Envoy está se referindo a si mesmo em métricas e rastreamentos. É possível substituir esse comportamento definindo a variável de ambiente `APPMESH_RESOURCE_CLUSTER ` com seu próprio nome.

Recomendamos implantar várias instâncias do contêiner e configurar um Network Load Balancer para balancear a carga do tráfego para as instâncias. O nome de descoberta de serviço do balanceador de carga é o nome que você deseja que os serviços externos usem para acessar recursos que estão na malha, como*myapp.example.com*. Para obter mais informações, consulte [Criação de um Load Balancer de Rede](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-network-load-balancer.html) (Amazon ECS), [Criação de um Load Balancer](https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/) Externo (Kubernetes) ou [Tutorial: Aumente a disponibilidade do seu aplicativo na](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-increase-availability.html) Amazon. EC2 Você também pode encontrar mais exemplos e orientações em nossos [Exemplos do App Mesh](https://docs.aws.amazon.com/app-mesh/latest/userguide/examples.html).

Habilite a autorização de proxy para o Envoy. Para obter mais informações, consulte [Autorização do Envoy Proxy](proxy-authorization.md).

## Excluir um gateway virtual
<a name="delete-virtual-gateway"></a>

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

**Para excluir um gateway virtual 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. Escolha a malha da qual você deseja excluir um gateway virtual. 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. Escolha o gateway virtual que deseja excluir e selecione **Excluir**. Você não pode excluir um gateway virtual se ele alguma rota do gateway associada. Você deve primeiro excluir todas as rotas do gateway associadas. Você só pode excluir um gateway virtual em que sua conta esteja listada como **Proprietário do recurso**.

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

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

**Para excluir um gateway virtual usando o AWS CLI**

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

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

1. Resultado do exemplo:

   ```
   {
       "virtualGateway": {
           "meshName": "meshName",
           "metadata": {
               "arn": "arn:aws:appmesh:us-west-2:123456789012:mesh/meshName/virtualGateway/virtualGatewayName",
               "createdAt": "2022-04-06T10:42:42.015000-05:00",
               "lastUpdatedAt": "2022-04-07T10:57:22.638000-05:00",
               "meshOwner": "123456789012",
               "resourceOwner": "123456789012",
               "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
               "version": 2
           },
           "spec": {
               "listeners": [
                   {
                       "portMapping": {
                           "port": 9080,
                           "protocol": "http"
                       }
                   }
               ]
           },
           "status": {
               "status": "DELETED"
           },
           "virtualGatewayName": "virtualGatewayName"
       }
   }
   ```

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

------