Serviços 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á.

Serviços 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 serviço virtual é uma abstração de um serviço real que é fornecido por um nó virtual direta ou indiretamente por meio de um roteador virtual. Os serviços dependentes chamam o serviço virtual pelo seu virtualServiceName e essas solicitações são roteadas para o nó virtual ou para o roteador virtual que é especificado como o provedor do serviço virtual.

Criar um serviço virtual

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

  3. Selecione Virtual services (Serviços virtuais) no painel de navegação à esquerda.

  4. Selecione Create virtual service (Criar serviço virtual).

  5. Em Virtual service name (Nome do serviço virtual), escolha um nome para o serviço virtual. Você pode escolher qualquer nome, mas o nome da descoberta de serviços real que você está almejando, como my-service.default.svc.cluster.local, é recomendado para facilitar a correlação de seus serviços virtuais com serviços reais. Dessa forma, não é necessário alterar o código para referenciar um nome diferente do referenciado atualmente no código. O nome que você especificar deve ser resolvido como um endereço IP não loopback, pois o contêiner do aplicativo deve ser capaz de resolver o nome com êxito antes que a solicitação seja enviada ao proxy do Envoy. Você pode usar qualquer endereço IP não loopback porque nem o aplicativo nem os contêineres de proxy se comunicam com esse endereço IP. O proxy se comunica com outros serviços virtuais por meio dos nomes que você configurou para eles no App Mesh, não por meio de endereços IP para os quais os nomes são resolvidos.

  6. Em Provider (Provedor), escolha o tipo de provedor para o serviço virtual:

    • Se desejar que o serviço virtual distribua o tráfego entre vários nós virtuais, selecione Virtual router (Roteador virtual) e escolha o roteador virtual a ser usado no menu suspenso.

    • Se desejar que o serviço virtual acesse um nó virtual diretamente, sem um roteador virtual, selecione Nó virtual e escolha o nó virtual a ser usado no menu suspenso.

      nota

      O App Mesh pode criar automaticamente uma política de repetição de rota padrão do Envoy para cada provedor de nó virtual que você definir em ou após 29 de julho de 2020, mesmo que você não possa definir essa política por meio do App Mesh. API Para obter mais informações, consulte Política padrão de tentativas de rotas.

    • Se não desejar que o serviço virtual faça o roteamento do tráfego no momento (por exemplo, se os seus nós virtuais ou o roteador virtual ainda não existirem), selecione None (Nenhum). Você poderá atualizar o provedor desse serviço virtual mais tarde.

  7. Selecione Create virtual service (Criar serviço virtual) para concluir.

AWS CLI

Para criar um serviço virtual usando a AWS CLI.

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

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

    { "meshName": "meshName", "spec": { "provider": { "virtualNode": { "virtualNodeName": "nodeName" } } }, "virtualServiceName": "serviceA.svc.cluster.local" }
  3. Resultado do exemplo:

    { "virtualService": { "meshName": "meshName", "metadata": { "arn": "arn:aws:appmesh:us-west-2:210987654321:mesh/meshName/virtualService/serviceA.svc.cluster.local", "createdAt": "2022-04-06T09:45:35.890000-05:00", "lastUpdatedAt": "2022-04-06T09:45:35.890000-05:00", "meshOwner": "123456789012", "resourceOwner": "210987654321", "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 1 }, "spec": { "provider": { "virtualNode": { "virtualNodeName": "nodeName" } } }, "status": { "status": "ACTIVE" }, "virtualServiceName": "serviceA.svc.cluster.local" } }

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

Excluir um serviço virtual

nota

Você não pode excluir um serviço virtual referenciado por uma rota do gateway. Primeiro, você precisa excluir a rota do gateway.

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

  3. Selecione Virtual services (Serviços virtuais) no painel de navegação à esquerda.

  4. Escolha o serviço virtual que você deseja excluir e clique em Excluir no canto superior direito. Você só pode excluir um gateway virtual em que sua conta esteja listada como Proprietário do recurso.

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

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

    aws appmesh delete-virtual-service \ --mesh-name meshName \ --virtual-service-name serviceA.svc.cluster.local
  2. Resultado do exemplo:

    { "virtualService": { "meshName": "meshName", "metadata": { "arn": "arn:aws:appmesh:us-west-2:210987654321:mesh/meshName/virtualService/serviceA.svc.cluster.local", "createdAt": "2022-04-06T09:45:35.890000-05:00", "lastUpdatedAt": "2022-04-07T10:39:42.772000-05:00", "meshOwner": "123456789012", "resourceOwner": "210987654321", "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 2 }, "spec": { "provider": { "virtualNode": { "virtualNodeName": "nodeName" } } }, "status": { "status": "DELETED" }, "virtualServiceName": "serviceA.svc.cluster.local" } }

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