Como configurar o DNS no domínio cloud.goog

Depois que a API for implantada, os usuários da API precisarão acessá-la por meio de um nome de domínio e não de um endereço IP. Você pode:

  • Configure .endpoints.PROJECT_ID.cloud.goog como o nome do domínio (em que PROJECT_ID é o ID do projeto do Google Cloud).
  • Ou registre seu próprio nome de domínio, como example.com, o que exige:
    • a configuração de servidores de nome de DNS (ou o uso do Cloud DNS);
    • a atualização de endereços de registro;
    • a criação e manutenção de registros de DNS.

    Se você já tiver uma infraestrutura de DNS ou quiser registrar seu próprio nome de domínio, consulte Como disponibilizar uma API a partir do nome do domínio para mais informações.

Esta página descreve como configurar as APIs do Cloud Endpoints para usar .endpoints.PROJECT_ID.cloud.goog como nome de domínio. As etapas de configuração nesta página são aplicáveis a APIs que usam o gRPC em execução no Compute Engine, no Google Kubernetes Engine ou no Kubernetes.

O domínio .cloud.goog é gerenciado pelo Google e compartilhado pelos clientes do Google Cloud. Como os projetos do Google Cloud têm a garantia de IDs exclusivos no mundo todo, um nome de domínio no formato .endpoints.PROJECT_ID.cloud.goog é exclusivo e pode ser usado como o nome de domínio da sua API. A configuração do nome de domínio .endpoints.PROJECT_ID.cloud.goog é opcional. Se preferir, é possível registrar seu próprio nome de domínio.

Pré-requisitos

Como ponto de partida, presumimos que você já criou sua API do Cloud Endpoints e a implantou no Compute Engine, no Google Kubernetes Engine ou no Kubernetes. Se precisar de uma API para testes, use um dos tutoriais que orientam sobre a configuração e implantação de uma API de amostra.

Como configurar DNS

O procedimento a seguir descreve como configurar o DNS para APIs do Endpoints que usam .endpoints.PROJECT_ID.cloud.goog como o nome do serviço do Endpoints. Por conveniência, o procedimento se refere ao arquivo de configuração do serviço gRPC como service.yaml.

Para configurar o DNS:

  1. Abra service.yaml e adicione o campo endpoints ao arquivo, conforme mostrado no snippet de código a seguir:
    type: google.api.Service
    name: API_NAME.endpoints.PROJECT_ID.cloud.goog
    endpoints:
    - name: API_NAME.endpoints.PROJECT_ID.cloud.goog
      target: "IP_ADDRESS"
      

    Em geral, os campos name e endpoints.name são os mesmos.

  2. Substitua API_NAME pelo nome da sua API (por exemplo, bookstore ou my-cool-api).
  3. Substitua IP_ADDRESS por um endereço IPv4. O endereço IP é uma string e precisa ser colocado entre aspas.

    Por exemplo, ao implantar seu serviço da API do Endpoints em uma instância de máquina virtual do Compute Engine, é possível usar o IP externo dessa máquina virtual. Como alternativa, se você executa seu código em um grupo de instâncias de máquina virtual (ou pods do GKE) por trás de um balanceador de carga, é possível usar o endereço IP do balanceador de carga.

  4. Implante seu arquivo de configuração do gRPC atualizado no Service Management usando o seguinte comando:
    gcloud endpoints services deploy service.yaml service.pb
    

Por exemplo, se o código abaixo for especificado no arquivo service.yaml:

type: google.api.Service
name: my-cool-api.endpoints.my-project-id.cloud.goog
endpoints:
- name: my-cool-api.endpoints.my-project-id.cloud.goog
  target: "192.0.2.1"

Quando você implanta o arquivo service.yaml usando o comando gcloud anterior, o Service Management cria um registro A de DNS, my-cool-api.endpoints.my-project-id.cloud.goog, que é resolvido para o endereço IP de destino, 192.0.2.1. Talvez seja necessário esperar alguns minutos até que a nova configuração de DNS se propague.

A seguir