

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

# Saiba como usar a descoberta AWS Cloud Map de serviços com consultas de DNS e chamadas de API
<a name="tutorial-private-namespace"></a>

O tutorial a seguir simula uma arquitetura de microsserviços com dois serviços de back-end. O primeiro serviço poderá ser descoberto usando uma consulta de DNS. O segundo serviço poderá ser descoberto usando somente a AWS Cloud Map API.

**nota**  
Os detalhes dos recursos, como nomes de domínio e endereços IP, são apenas para fins de simulação. Eles não podem ser resolvidos pela internet.

Para obter uma end-to-end AWS CLI versão deste tutorial, consulte[Saiba como usar a descoberta AWS Cloud Map de serviços com consultas de DNS e chamadas de API usando o AWS CLI](tutorial-private-namespace-cli.md).

## Pré-requisitos
<a name="getting-started-prerequisites"></a>

Os pré-requisitos a seguir devem ser atendidos para concluir o tutorial com êxito.
+ Antes de começar, conclua as etapas em [Configurado para usar AWS Cloud Map](setting-up-cloud-map.md).
+ Se você ainda não instalou o AWS Command Line Interface, siga as etapas em [Instalando ou atualizando a versão mais recente do AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) para instalá-lo.

  O tutorial requer um terminal de linha de comando ou um shell para executar os comandos. No Linux e no macOS, use o gerenciador de pacotes e de shell de sua preferência.
**nota**  
No Windows, alguns comandos da CLI do Bash que você costuma usar com o Lambda (como `zip`) não são compatíveis com os terminais integrados do sistema operacional. Para obter uma versão do Ubuntu com o Bash integrada no Windows, [instale o Subsistema do Windows para Linux](https://learn.microsoft.com/en-us/windows/wsl/install).
+ O tutorial requer um ambiente local com o comando `dig` DNS lookup utility.

## Etapa 1: criar um AWS Cloud Map namespace
<a name="tutorial-microservices-step1"></a>

Nesta etapa, você cria um AWS Cloud Map namespace público. AWS Cloud Map cria uma zona hospedada do Route 53 em seu nome com esse mesmo nome. Isso permite que você descubra as instâncias de serviço criadas nesse namespace usando registros DNS públicos ou usando AWS Cloud Map chamadas de API.

1. Faça login no Console de gerenciamento da AWS e abra o AWS Cloud Map console em [https://console.aws.amazon.com/cloudmap/](https://console.aws.amazon.com/cloudmap/).

1. Escolha **Create namespace (Criar namespace)**.

1. Para **Nome do namespace, especifique**. `cloudmap-tutorial.com`
**nota**  
Se você fosse usar isso na produção, você gostaria de garantir que especificou o nome de um domínio que você possuía ou ao qual tinha acesso. Mas, para os propósitos deste tutorial, não é necessário que seja um domínio real que esteja sendo usado.

1. (Opcional) Para a **descrição do namespace**, especifique uma descrição para o que você pretende usar o namespace.

1. Em **Descoberta de instâncias**, selecione **chamadas de API e consultas públicas de DNS**.

1. Deixe o resto dos valores padrão e escolha **Criar namespace**.

## Etapa 2: criar os AWS Cloud Map serviços
<a name="tutorial-microservices-step2"></a>

Nesta etapa, você cria dois serviços. O primeiro serviço poderá ser descoberto usando chamadas públicas de DNS e API. O segundo serviço poderá ser descoberto usando somente chamadas de API.

1. Faça login no Console de gerenciamento da AWS e abra o AWS Cloud Map console em [https://console.aws.amazon.com/cloudmap/](https://console.aws.amazon.com/cloudmap/).

1. No painel de navegação esquerdo, escolha **Namespaces para listar os namespaces** que você criou.

1. **Na lista de namespaces, selecione o `cloudmap-tutorial.com` namespace e escolha Exibir detalhes.**

1. Na seção **Serviços**, escolha **Criar serviço** e faça o seguinte para criar o primeiro serviço.

   1. Em **Nome do serviço**, digite `public-service`. O nome do serviço será aplicado aos registros DNS AWS Cloud Map criados. O formato usado é`<service-name>.<namespace-name>`.

   1. Para **Configuração do Service Discovery**, selecione **API e DNS**.

   1. Na seção **Configuração de DNS**, em **Política de roteamento, selecione Roteamento** de respostas de **vários valores.**
**nota**  
O console traduzirá isso para **MULTIVALUE** depois de selecionado. Para obter mais informações sobre as opções de roteamento disponíveis, consulte Como [escolher uma política de roteamento no Guia](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html) do *desenvolvedor do Route 53*.

   1. Deixe o restante dos valores padrão e escolha **Criar serviço**, que o levará de volta à página de detalhes do namespace.

1. Na seção **Serviços**, escolha **Criar serviço** e faça o seguinte para criar o segundo serviço.

   1. Em **Nome do serviço**, digite `backend-service`.

   1. Para **Configuração do Service Discovery**, selecione **somente API**.

   1. Deixe o resto dos valores padrão e escolha **Criar serviço**.

## Etapa 3: registrar as instâncias do AWS Cloud Map serviço
<a name="tutorial-microservices-step3"></a>

Nesta etapa, você cria duas instâncias de serviço, uma para cada serviço em nosso namespace.

1. Faça login no Console de gerenciamento da AWS e abra o AWS Cloud Map console em [https://console.aws.amazon.com/cloudmap/](https://console.aws.amazon.com/cloudmap/).

1. **Na lista de namespaces, selecione o namespace que você criou na etapa 1 e escolha Exibir detalhes.**

1. Na página de detalhes do namespace, na lista de serviços, selecione o `public-service` serviço e escolha **Exibir detalhes**.

1. Na seção **Instâncias de serviço**, escolha **Registrar instância de serviço** e faça o seguinte para criar a primeira instância de serviço.

   1. Para **ID da instância de serviço**, especifique`first`.

   1. Para **IPv4 endereço**, especifique`192.168.2.1`.

   1. Deixe o resto dos valores padrão e escolha **Registrar instância de serviço**.

1. Usando o breadcrumb na parte superior da página, selecione **cloudmap-tutorial.com** para voltar à página de detalhes do namespace.

1. **Na página de detalhes do namespace, na lista de serviços, selecione o **serviço de back-end** e escolha Exibir detalhes.**

1. Na seção **Instâncias de serviço**, escolha **Registrar instância de serviço** e faça o seguinte para criar a segunda instância de serviço.

   1. Em **ID da instância de serviço**, especifique `second` para indicar que essa é a segunda instância de serviço.

   1. Em **Tipo de instância**, selecione **Informações de identificação para outro recurso**.

   1. Para **atributos personalizados**, adicione um par de valores-chave `service-name` como chave e `backend` como valor.

   1. Escolha **Registrar instância de serviço**.

## Etapa 4: descobrir as instâncias do AWS Cloud Map serviço
<a name="tutorial-microservices-step4"></a>

Agora que o AWS Cloud Map namespace, os serviços e as instâncias de serviço foram criados, você pode verificar se tudo está funcionando descobrindo as instâncias. Use o `dig` comando para verificar as configurações públicas de DNS e a AWS Cloud Map API para verificar o serviço de back-end. Para obter mais informações sobre o `dig` comando, consulte [dig - DNS lookup utility](https://downloads.isc.org/isc/bind9/cur/9.19/doc/arm/html/manpages.html#dig-dns-lookup-utility).

1. Faça login no Console de gerenciamento da AWS e abra o console do Route 53 em [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/).

1. No painel de navegação, escolha **Hosted zones (Zonas hospedadas)**.

1. Selecione a zona hospedada do **cloudmap-tutorial.com**. Isso exibe os detalhes da zona hospedada em um painel separado. Anote os **servidores de nomes** associados à sua zona hospedada, pois os usaremos na próxima etapa.

1. Usando o comando dig e um dos servidores de nomes do Route 53 para sua zona hospedada, consulte os registros DNS da sua instância de serviço.

   ```
   dig @hosted-zone-nameserver public-service.cloudmap-tutorial.com
   ```

   O `ANSWER SECTION` na saída deve exibir o IPv4 endereço que você associou ao seu `public-service` serviço.

   ```
   ;; ANSWER SECTION:
   public-service.cloudmap-tutorial.com. 300 IN A	192.168.2.1
   ```

1. Usando o AWS CLI, consulte os atributos de suas segundas instâncias de serviço.

   ```
   aws servicediscovery discover-instances --namespace-name cloudmap-tutorial.com --service-name backend-service --region region
   ```

   A saída exibe os atributos que você associou ao serviço como pares de valores-chave.

   ```
   {
       "Instances": [
           {
               "InstanceId": "second",
               "NamespaceName": "cloudmap-tutorial.com",
               "ServiceName": "backend-service",
               "HealthStatus": "UNKNOWN",
               "Attributes": {
                   "service-name": "backend"
               }
           }
       ],
       "InstancesRevision": 71462688285136850
   }
   ```

## Etapa 5: limpar os recursos
<a name="tutorial-microservices-step5"></a>

Depois de concluir o tutorial, você pode excluir os recursos. AWS Cloud Map exige que você as limpe na ordem inversa, primeiro as instâncias do serviço, depois os serviços e, finalmente, o namespace. AWS Cloud Map limpará os recursos do Route 53 em seu nome quando você seguir essas etapas.

1. Faça login no Console de gerenciamento da AWS e abra o AWS Cloud Map console em [https://console.aws.amazon.com/cloudmap/](https://console.aws.amazon.com/cloudmap/).

1. **Na lista de namespaces, selecione o `cloudmap-tutorial.com` namespace e escolha Exibir detalhes.**

1. Na página de detalhes do namespace, na lista de serviços, selecione o `public-service` serviço e escolha **Exibir detalhes**.

1. Na seção **Instâncias de serviço**, selecione a `first` instância e escolha **Cancelar registro**.

1. Usando o breadcrumb na parte superior da página, selecione **cloudmap-tutorial.com** para voltar à página de detalhes do namespace.

1. **Na página de detalhes do namespace, na lista de serviços, selecione o **serviço público e escolha Excluir**.**

1. Repita as etapas de 3 a 6 para o. `backend-service`

1. No painel de navegação à esquerda, escolha **Namespaces**.

1. **Selecione o `cloudmap-tutorial.com` namespace e escolha Excluir.**
**nota**  
Embora AWS Cloud Map limpe os recursos do Route 53 em seu nome, você pode navegar até o console do Route 53 para verificar se a zona `cloudmap-tutorial.com` hospedada foi excluída.