Nós virtuais - 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á.

Nós virtuais

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.

Um nó virtual atua como um ponteiro lógico para um grupo de tarefas específico, como um ECS serviço da Amazon ou uma implantação do Kubernetes. Ao criar um nó virtual, você deve especificar um método de descoberta de serviços para seu grupo de tarefas. Qualquer tráfego de entrada que seu nó virtual esperar deverá ser especificado como um receptor. Qualquer serviço virtual para o qual um nó virtual envia tráfego de saída é especificado como back-end.

Os metadados de resposta para seu novo nó virtual contêm o Amazon Resource Name (ARN) que está associado ao nó virtual. Defina esse valor como a variável de APPMESH_RESOURCE_ARN ambiente para o contêiner proxy Envoy do seu grupo de tarefas na definição de ECS tarefas da Amazon ou na especificação do pod Kubernetes. Por exemplo, o valor pode ser arn:aws:appmesh:us-west-2:111122223333:mesh/myMesh/virtualNode/myVirtualNode. Depois, isso é mapeado para os parâmetros do Envoy node.id e node.cluster. É necessário usar 1.15.0 ou posterior da imagem do Envoy quando definir essa variável. Para obter mais informações sobre variáveis Envoy do App Mesh, consulte Imagem do Envoy.

nota

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.

Criar um nó virtual

AWS Management Console
Para criar um nó virtual usando o AWS Management Console
  1. Abra o console do App Mesh em https://console.aws.amazon.com/appmesh/.

  2. Escolha a malha em que deseja criar o nó virtual. Todas as malhas que você possui e que foram compartilhadas com você estão listadas.

  3. Selecione Virtual nodes (Nós virtuais) no painel de navegação à esquerda.

  4. Escolha Criar nó virtual e especifique as configurações para o seu nó virtual.

  5. Em Nome do nó virtual, escolha um nome para seu nó virtual.

  6. Em Método de descoberta de serviços, escolha uma das seguintes opções:

    • DNS— Especifique o DNSnome do host do serviço real que o nó virtual representa. O proxy Envoy é implantado em uma Amazon. VPC O proxy envia solicitações de resolução de nomes para o DNS servidor que está configurado para VPC o. Se o nome do host for resolvido, o DNS servidor retornará um ou mais endereços IP. Para obter mais informações sobre VPC DNS configurações, consulte Usando DNS com seu VPC. Para o tipo de DNS resposta (opcional), especifique os tipos de endpoints retornados pelo DNS resolvedor. Load Balancer significa que o DNS resolvedor retorna um conjunto de endpoints com balanceamento de carga. Endpoints significa que o DNS resolvedor está retornando todos os endpoints. Por padrão, presume-se que o tipo de resposta seja Balanceador de carga.

      nota

      Se você usar o Route53, precisará usar o Balanceador de carga.

    • AWS Cloud Map— Especifique um nome de serviço e um HTTP namespace existentes. Opcionalmente, você também pode especificar atributos que o App Mesh pode consultar AWS Cloud Map selecionando Adicionar linha e especificando uma chave e um valor. Somente as instâncias que correspondam a todos os pares de chave/valor serão retornadas. Para ser usada AWS Cloud Map, sua conta deve ter a função AWSServiceRoleForAppMesh vinculada ao serviço. Para obter mais informações sobre AWS Cloud Map, consulte o Guia do AWS Cloud Map desenvolvedor.

    • Nenhum: selecione se o nó virtual não esperar nenhum tráfego de entrada.

  7. Preferência de versão do IP

    Controle qual versão de IP deve ser usada para tráfego dentro da malha ativando Substituir comportamento da versão de IP padrão. Por padrão, o App Mesh usa uma variedade de versões de IP.

    nota

    A definição da preferência de IP em um nó virtual substitui apenas a preferência de IP definida para a malha nesse nó específico.

    • Padrão

      • O DNS resolvedor do Envoy prefere IPv6 e volta para o. IPv4

      • Usamos o IPv4 endereço retornado por, AWS Cloud Map se disponível, e voltamos a usar o IPv6 endereço.

      • O endpoint criado para o aplicativo local usa um endereço IPv4.

      • Os receptores do Envoy se vinculam a todos os endereços IPv4.

    • IPv6preferido

      • O DNS resolvedor do Envoy prefere IPv6 e volta para o. IPv4

      • O IPv6 endereço retornado por AWS Cloud Map é usado, se disponível, e volta a usar o IPv4 endereço

      • O endpoint criado para o aplicativo local usa um endereço IPv6.

      • Os receptores do Envoy se vinculam a todos os endereços IPv4 e IPv6.

    • IPv4preferido

      • O DNS resolvedor do Envoy prefere IPv4 e volta para o. IPv6

      • Usamos o IPv4 endereço retornado por, AWS Cloud Map se disponível, e voltamos a usar o IPv6 endereço.

      • O endpoint criado para o aplicativo local usa um endereço IPv4.

      • Os receptores do Envoy se vinculam a todos os endereços IPv4 e IPv6.

    • IPv6somente

      • O DNS resolvedor do Envoy usa apenas. IPv6

      • Somente o IPv6 endereço retornado por AWS Cloud Map é usado. Se o AWS Cloud Map retornar um endereço IPv4, nenhum endereço IP será usado e os resultados vazios serão retornados ao Envoy.

      • O endpoint criado para o aplicativo local usa um endereço IPv6.

      • Os receptores do Envoy se vinculam a todos os endereços IPv4 e IPv6.

    • IPv4somente

      • O DNS resolvedor do Envoy usa apenas. IPv4

      • Somente o IPv4 endereço retornado por AWS Cloud Map é usado. Se o AWS Cloud Map retornar um endereço IPv6, nenhum endereço IP será usado e os resultados vazios serão retornados ao Envoy.

      • O endpoint criado para o aplicativo local usa um endereço IPv4.

      • Os receptores do Envoy se vinculam a todos os endereços IPv4 e IPv6.

  8. (Opcional) Padrões da política do cliente: configure os requisitos padrão ao se comunicar com serviços virtuais de back-end.
    nota
    • Se você quiser habilitar o Transport Layer Security (TLS) para um nó virtual existente, recomendamos criar um novo nó virtual, que represente o mesmo serviço do nó virtual existente, no qual habilitarTLS. Em seguida, transfira gradualmente o tráfego para o novo nó virtual usando um roteador virtual e uma rota. Para obter mais informações sobre como criar uma rota e ajustar os pesos para a transição, consulte Rotas. Se você atualizar um nó virtual existente que serve tráfego comTLS, há uma chance de que os proxies Envoy do cliente downstream recebam o contexto de TLS validação antes que o proxy Envoy do nó virtual que você atualizou receba o certificado. Isso pode causar erros de TLS negociação nos proxies downstream do Envoy.

    • A autorização de proxy deve ser habilitada para o proxy Envoy implantado com o aplicativo representado pelos nós virtuais do serviço de back-end. Recomendamos que, ao habilitar a autorização de proxy, restrinja o acesso somente aos nós virtuais com os quais esse nó virtual está se comunicando.

    • (Opcional) Selecione Enforce TLS se quiser exigir que o nó virtual se comunique com todos os back-ends usando o Transport Layer Security ()TLS.

    • (Opcional) Se você quiser exigir apenas o uso TLS de uma ou mais portas específicas, insira um número em Portas. Para adicionar mais portas, selecione Adicionar porta. Se você não especificar nenhuma porta, TLS é aplicada para todas as portas.

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

      • Hospedagem da AWS Private Certificate Authority: selecione um ou mais Certificados existentes. Para ver um resumo completo da implantação de uma malha com um aplicativo de amostra usando criptografia com um ACM certificado, consulte Configurando TLS com o AWS Certificate Manager ativado. end-to-end GitHub

      • Hospedagem do Envoy Secret Discovery Service (SDS) — Digite o nome do Enviado secreto que o Enviado 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. Para ver um resumo end-to-end completo da implantação de uma malha com um aplicativo de amostra usando criptografia com arquivos locais, consulte Configuração TLS com TLS certificados fornecidos por arquivo ativados. GitHub

    • (Opcional) Insira um Nome alternativo do assunto. Para adicionar maisSANs, selecione Adicionar SAN. SANsdeve ser FQDN ou URI formatado.

    • (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 TLS autenticação mútua. Para saber mais sobre a mútuaTLS, consulte os documentos de TLSautenticação mútua do App Mesh.

      • Hospedagem do Envoy Secret Discovery Service (SDS) — Digite o nome do Enviado secreto que o Enviado 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.

  9. (Opcional) Backends de serviço: especifique o serviço virtual do App Mesh com o qual o nó virtual se comunicará.
    • Insira um nome de serviço virtual App Mesh ou o Amazon Resource Name completo (ARN) para o serviço virtual com o qual seu nó virtual se comunica.

    • (Opcional) Se você quiser definir TLS configurações exclusivas para um back-end, selecione TLSconfigurações e selecione Substituir padrões.

      • (Opcional) Selecione Enforce TLS se quiser exigir que o nó virtual se comunique com todos os back-ends usando. TLS

      • (Opcional) Se você quiser exigir apenas o uso TLS de uma ou mais portas específicas, insira um número em Portas. Para adicionar mais portas, selecione Adicionar porta. Se você não especificar nenhuma porta, TLS é aplicada para todas as portas.

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

        • Hospedagem da AWS Private Certificate Authority: selecione um ou mais Certificados existentes.

        • Hospedagem do Envoy Secret Discovery Service (SDS) — Digite o nome do Enviado secreto que o Enviado 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 maisSANs, selecione Adicionar SAN. SANsdeve ser FQDN ou URI formatado.

      • (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 TLS autenticação mútua. Para saber mais sobre a mútuaTLS, consulte os documentos de TLSautenticação mútua do App Mesh.

        • Hospedagem do Envoy Secret Discovery Service (SDS) — Digite o nome do Enviado secreto que o Enviado 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 adicionar mais back-ends, selecione Adicionar back-end.

  10. (Opcional) Registro

    Para configurar o registro, insira o caminho dos registros de HTTP acesso 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.

  11. Configuração do receptor

    Os receptores são compatíveis com os protocolos HTTP, HTTP/2, GRPC e TCP. HTTPS não é compatível.

    1. Se o seu nó virtual esperar tráfego de entrada, especifique uma Porta e um Protocolo para o Receptor. 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.

    2. (Opcional) Habilitar grupo de conexões

      O pooling de conexões limita o número de conexões que um Envoy pode estabelecer simultaneamente com o cluster de aplicativos local. O objetivo é proteger seu aplicativo local de ficar sobrecarregado 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 nó 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 portMapping protocolos connectionPool e devem ser os mesmos. Se seu protocolo de ouvinte for tcp, especifique maxConnections somente. Se seu protocolo de ouvinte for grpc ou http2, especifique somente. maxRequests Se seu protocolo de ouvinte 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.

      • (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 colocará na fila. O valor padrão é 2147483647.

    3. (Opcional) Habilitar detecção de discrepância

      A detecção de discrepâncias aplicada no Envoy do cliente permite que os clientes tomem medidas quase imediatas em conexões com falhas conhecidas e observadas. É uma forma de implementação de disjuntor que rastreia o estado de integridade de hosts individuais no serviço upstream.

      A detecção de discrepâncias determina dinamicamente se os endpoints em um cluster upstream têm um desempenho diferente dos outros e os remove do conjunto de balanceamento de carga íntegro.

      nota

      Para configurar com eficácia a detecção de valores discrepantes em um nó virtual do servidor, o método de descoberta de serviço desse nó virtual pode ser um AWS Cloud Map ou DNS com o campo do tipo de resposta definido como. ENDPOINTS Se você usar o método DNS de descoberta de serviço com o tipo de resposta comoLOADBALANCER, o proxy Envoy elegerá apenas um único endereço IP para roteamento para o serviço upstream. Isso anula o comportamento de detecção de discrepâncias de ejetar um host não íntegro de um conjunto de hosts. Consulte a seção Método de descoberta de serviços para obter mais detalhes sobre o comportamento do proxy Envoy em relação ao tipo de descoberta de serviços.

      • Para Erros do servidor, especifique o número de erros 5xx consecutivos necessários para a ejeção.

      • Para o Intervalo da detecção de discrepância, especifique o intervalo e a unidade de tempo entre a análise de varredura e a ejeção.

      • Para Duração da ejeção básica, especificar o valor básico e a unidade de tempo no qual um host é ejetado.

      • Para Porcentagem de ejeção, especificar a porcentagem máxima de hosts no grupo de balanceamento de carga que pode ser ejetado.

    4. (Opcional) Ativar verificação de integridade: defina as configurações de uma política de 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, seu serviço deverá estar em conformidade com o GRPCHealth Checking Protocol.

      • 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 Timeout period (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.

    5. (Opcional) Ativar TLS encerramento — Configure como outros nós virtuais se comunicam com esse nó virtual usandoTLS.
      • Em Modo, selecione o modo para o qual você TLS deseja ser configurado no ouvinte.

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

        • AWS Certificate Manager hospedagem — Selecione um certificado existente.

        • Hospedagem do Envoy Secret Discovery Service (SDS) — Digite o nome do Enviado secreto que o Enviado 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 proxy Envoy está implantado.

      • (Opcional) Selecione Exigir certificados de cliente e uma das opções abaixo para ativar a TLS autenticação mútua quando um cliente fornecer um certificado. Para saber mais sobre a mútuaTLS, consulte os documentos de TLSautenticação mútua do App Mesh.

        • Hospedagem do Envoy Secret Discovery Service (SDS) — Digite o nome do Enviado secreto que o Enviado 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 maisSANs, selecione Adicionar SAN. SANsdeve ser FQDN ou URI formatado.

    6. (Opcional) Tempos limite
      nota

      Se você especificar um tempo limite maior que o padrão, certifique-se de configurar um roteador virtual e uma rota com um tempo limite 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 em Rota. Para obter mais informações, consulte Rotas.

      • Tempo limite da solicitação: você pode especificar um tempo limite da solicitação se tiver selecionado grpc, http ou http2 para o Protocolo do receptor. O padrão é 15 segundos. Um valor de 0 desabilita o tempo limite.

      • Duração do tempo ocioso: você pode especificar uma duração do tempo ocioso para qualquer protocolo do receptor. O padrão é trezentos segundos.

  12. Escolha Criar nó virtual para concluir.

AWS CLI

Para criar um nó virtual usando a AWS CLI.

Crie um nó virtual que use DNS para descoberta de serviços usando o comando a seguir e um JSON arquivo de entrada (substitua o red valores com os seus):

  1. aws appmesh create-virtual-node \ --cli-input-json file://create-virtual-node-dns.json
  2. Conteúdo do exemplo create-virtual-node-dns .json:

    { "meshName": "meshName", "spec": { "listeners": [ { "portMapping": { "port": 80, "protocol": "http" } } ], "serviceDiscovery": { "dns": { "hostname": "serviceBv1.svc.cluster.local" } } }, "virtualNodeName": "nodeName" }
  3. Resultado do exemplo:

    { "virtualNode": { "meshName": "meshName", "metadata": { "arn": "arn:aws:appmesh:us-west-2:210987654321:mesh/meshName/virtualNode/nodeName", "createdAt": "2022-04-06T09:12:24.348000-05:00", "lastUpdatedAt": "2022-04-06T09:12:24.348000-05:00", "meshOwner": "123456789012", "resourceOwner": "210987654321", "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 1 }, "spec": { "listeners": [ { "portMapping": { "port": 80, "protocol": "http" } } ], "serviceDiscovery": { "dns": { "hostname": "serviceBv1.svc.cluster.local" } } }, "status": { "status": "ACTIVE" }, "virtualNodeName": "nodeName" } }

Para obter mais informações sobre como criar um nó virtual com o AWS CLI for App Mesh, consulte o create-virtual-nodecomando na AWS CLI referência.

Excluir um nó virtual

nota

Você não pode excluir um nó virtual se ele for especificado como destino em qualquer rota ou como provedor em qualquer serviço virtual.

AWS Management Console
Para excluir um nó virtual 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 um nó virtual. Todas as malhas que você possui e que foram compartilhadas com você estão listadas.

  3. Selecione Virtual nodes (Nós virtuais) no painel de navegação à esquerda.

  4. Na tabela Nós virtuais, escolha o nó virtual que deseja excluir e selecione Excluir. Para excluir um nó virtual, o ID da sua conta deve estar listado nas colunas Proprietário da malha ou Proprietário do recurso do nó virtual.

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

AWS CLI
Para excluir um nó virtual usando o AWS CLI
  1. Use o comando a seguir para excluir seu nó virtual (substitua o red valores com os seus):

    aws appmesh delete-virtual-node \ --mesh-name meshName \ --virtual-node-name nodeName
  2. Resultado do exemplo:

    { "virtualNode": { "meshName": "meshName", "metadata": { "arn": "arn:aws:appmesh:us-west-2:210987654321:mesh/meshName/virtualNode/nodeName", "createdAt": "2022-04-06T09:12:24.348000-05:00", "lastUpdatedAt": "2022-04-07T11:03:48.120000-05:00", "meshOwner": "123456789012", "resourceOwner": "210987654321", "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 2 }, "spec": { "backends": [], "listeners": [ { "portMapping": { "port": 80, "protocol": "http" } } ], "serviceDiscovery": { "dns": { "hostname": "serviceBv1.svc.cluster.local" } } }, "status": { "status": "DELETED" }, "virtualNodeName": "nodeName" } }

Para obter mais informações sobre como excluir um nó virtual com o AWS CLI for App Mesh, consulte o delete-virtual-nodecomando na AWS CLI referência.