Criação de um AWS Cloud Map namespace para agrupar serviços de aplicativos - AWS Cloud Map

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

Criação de um AWS Cloud Map namespace para agrupar serviços de aplicativos

Você pode criar um namespace para agrupar serviços para seu aplicativo com um nome amigável que permita a descoberta de recursos do aplicativo por meio de chamadas de API ou consultas de DNS.

Opções de descoberta de instâncias

A tabela a seguir resume as diferentes opções de descoberta de instâncias AWS Cloud Map e o tipo de namespace correspondente que você pode criar, dependendo dos serviços e da configuração do seu aplicativo.

Tipo de namespace Método de descoberta de instâncias Como funciona Mais informações
HTTP Chamadas à API Os recursos em seu aplicativo podem descobrir outros recursos chamando somente a DiscoverInstances API.
DNS privado Chamadas de API e consultas de DNS em uma VPC

Os recursos em seu aplicativo podem descobrir outros recursos chamando a DiscoverInstances API e consultando os servidores de nomes na zona hospedada privada do Route 53 que é criada automaticamente. AWS Cloud Map

A zona hospedada criada por AWS Cloud Map tem o mesmo nome do namespace e contém registros DNS que têm nomes no formato service-name. nome do namespace.

nota

O resolvedor do Route 53 resolve consultas ao DNS originadas na VPC usando registros na zona hospedada privada. Se a zona hospedada privada não incluir um registro que corresponda ao nome do domínio em uma consulta ao DNS, o Route 53 responderá à consulta com NXDOMAIN (domínio inexistente).

DNS público API calls and public DNS queries (Chamadas à API e consultas DNS públicas)

Os recursos em seu aplicativo podem descobrir outros recursos chamando a DiscoverInstances API e consultando os servidores de nomes na zona hospedada pública do Route 53 que é criada automaticamente. AWS Cloud Map

A zona hospedada pública tem o mesmo nome do namespace e contém registros DNS que têm nomes no formato service-name. nome do namespace.

nota

O nome do namespace, nesse caso, deve ser um nome de domínio que você registrou.

Procedimento

Você pode seguir essas etapas para criar um namespace usando o AWS CLI AWS Management Console, ou o SDK para Python.

AWS Management Console
  1. Faça login no AWS Management Console e abra o AWS Cloud Map console em https://console.aws.amazon.com/cloudmap/.

  2. Escolha Create namespace (Criar namespace).

  3. Em Nome do namespace, insira um nome que será usado para descobrir instâncias.

    nota
    • Os namespaces configurados para consultas públicas de DNS devem terminar com um domínio de nível superior. Por exemplo, .com.

    • É possível especificar um internationalized domain name (IDN - nome de domínio internacionalizado) se você converter o nome em Punycode primeiro. Para obter informações sobre conversores online, pesquise “conversor punycode” na Internet.

      Você também pode converter um nome de domínio internacionalizado em Punycode ao criar namespaces de forma programática. Por exemplo, se você estiver usando Java, poderá converter um valor Unicode em Punycode usando o método toASCII da biblioteca java.net.IDN.

  4. (Opcional) Em Descrição do namespace, insira as informações sobre o namespace que estarão visíveis na página Namespaces e em Namespace information. Você pode usar essas informações para identificar facilmente um namespace.

  5. Para a descoberta de instâncias, você pode escolher entre chamadas de API, chamadas de API e consultas de DNS em VPCs e chamadas de API e consultas de DNS públicas para criar um namespace HTTP, DNS privado ou DNS público, respectivamente. Para ter mais informações, consulte Opções de descoberta de instâncias.

    Com base na sua seleção, siga estas etapas.

    • Se você escolher chamadas de API e consultas de DNS em VPCs, para VPC, escolha uma nuvem privada virtual (VPC) à qual você deseja associar o namespace.

    • Se você escolher chamadas de API e consultas de DNS em VPCs ou chamadas de API e consultas públicas de DNS, para TTL, especifique um valor numérico em segundos. O valor de vida útil (TTL) determina por quanto tempo os resolvedores de DNS armazenam em cache as informações do registro DNS de início de autoridade (SOA) da zona hospedada do Route 53 criada com seu namespace. Para obter mais informações sobre TTL, consulte TTL (segundos) no Guia do desenvolvedor do Amazon Route 53.

  6. (Opcional) Em Tags, escolha Adicionar tags e especifique uma chave e um valor para marcar seu namespace. É possível especificar uma ou mais tags para adicionar ao seu namespace. As tags permitem que você categorize seus AWS recursos para que você possa gerenciá-los com mais facilidade. Para ter mais informações, consulte Marcando seus recursos AWS Cloud Map.

  7. Escolha Create namespace (Criar namespace). Você pode visualizar o status da operação usando ListOperations. Para obter mais informações, consulte ListOperationsa Referência AWS Cloud Map da API

AWS CLI
  • Crie um namespace com o comando para o tipo de descoberta de instância que você preferir (substitua os valores destacados em vermelho pelos seus).

    • Criar um namespace HTTP usando create-http-namespace. As instâncias de serviço que você registra usando um namespace HTTP podem ser descobertas usando uma solicitação DiscoverInstances, mas não podem ser detectadas usando DNS.

      aws servicediscovery create-http-namespace --name name-of-namespace
    • Cria um namespace privado com base no DNS, que será visível apenas dentro de uma Amazon VPC especificada usando create-private-dns-namespace. É possível descobrir instâncias que foram registradas com um namespace de DNS público utilizando uma solicitação DiscoverInstances ou usando o DNS

      aws servicediscovery create-private-dns-namespace --name name-of-namespace --vpc vpc-xxxxxxxxx
    • Cria um namespace público baseado em DNS, que é visível na Internet usando create-public-dns-namespace. É possível descobrir instâncias que foram registradas com um namespace de DNS público utilizando uma solicitação DiscoverInstances ou usando o DNS.

      aws servicediscovery create-public-dns-namespace --name name-of-namespace
AWS SDK for Python (Boto3)
  1. Caso ainda não tenha instalado Boto3, é possível encontrar instruções para instalação, configuração e uso do Boto3 aqui.

  2. Importe Boto3 e use servicediscovery como seu serviço.

    import boto3 client = boto3.client('servicediscovery')
  3. Crie um namespace com o comando para o tipo de descoberta de instância que você preferir (substitua os valores destacados em vermelho pelos seus):

    • Criar um namespace HTTP usando create_http_namespace(). As instâncias de serviço que você registra usando um namespace HTTP podem ser descobertas usando uma solicitação discover_instances(), mas não podem ser detectadas usando DNS.

      response = client.create_http_namespace( Name='name-of-namespace', ) # If you want to see the response print(response)
    • Cria um namespace privado com base no DNS, que será visível apenas dentro de uma Amazon VPC especificada usando create_private_dns_namespace(). É possível descobrir instâncias que foram registradas com um namespace de DNS público utilizando uma solicitação discover_instances() ou usando o DNS

      response = client.create_private_dns_namespace( Name='name-of-namespace', Vpc='vpc-1c56417b', ) # If you want to see the response print(response)
    • Cria um namespace público baseado em DNS, que é visível na Internet usando create_public_dns_namespace(). É possível descobrir instâncias que foram registradas com um namespace de DNS público utilizando uma solicitação discover_instances() ou usando o DNS.

      response = client.create_public_dns_namespace( Name='name-of-namespace', ) # If you want to see the response print(response)
    • Exemplo de objeto de resposta

      { 'OperationId': 'gv4g5meo7ndmeh4fqskygvk23d2fijwa-k9302yzd', 'ResponseMetadata': { '...': '...', }, }

Próximas etapas

Depois de criar um namespace, você pode criar serviços no namespace para agrupar recursos do aplicativo que, coletivamente, servem a uma finalidade específica em seu aplicativo. Um serviço atua como um modelo para registrar recursos do aplicativo como instâncias. Para obter mais informações sobre a criação AWS Cloud Map de serviços, consulteCriação de um AWS Cloud Map serviço para um componente do aplicativo.