Configurar o DNS no domínio cloud.goog

Depois de a API ser implementada, os utilizadores da API têm de aceder à mesma através de um nome de domínio e não de um endereço IP. Pode:

  • Configure .endpoints.PROJECT_ID.cloud.goog como o nome do domínio (onde PROJECT_ID é o ID do seu projeto Google Cloud).
  • Em alternativa, registe o seu próprio nome de domínio, como example.com, o que implica:
    • Configurar servidores de nomes DNS (ou usar o Cloud DNS).
    • Atualizar as moradas do registo.
    • Criar e manter registos DNS.

    Se já tiver uma infraestrutura de DNS ou quiser registar o seu próprio nome de domínio, consulte o artigo Publicar uma API a partir do seu nome de domínio para mais informações.

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

O domínio .cloud.goog é gerido pela Google e partilhado por Google Cloudclientes. Uma vez que Google Cloud os projetos têm a garantia de ter um ID do projeto globalmente único, um nome de domínio no formato .endpoints.PROJECT_ID.cloud.goog é único e pode ser usado como o nome de domínio da sua API. A configuração do nome do domínio .endpoints.PROJECT_ID.cloud.goog é opcional. Se preferir, pode registar o seu próprio nome de domínio.

Pré-requisitos

Como ponto de partida, esta página pressupõe que já criou a sua API Cloud Endpoints e a implementou no Compute Engine, no Google Kubernetes Engine ou no Kubernetes. Se precisar de uma API para testes, pode usar um dos tutoriais que explicam passo a passo como configurar e implementar uma API de exemplo.

Configurar o DNS

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

Para configurar o DNS:

  1. Abra service.yaml e adicione o campo endpoints ao ficheiro, conforme mostrado no seguinte fragmento do código:
    type: google.api.Service
    name: API_NAME.endpoints.PROJECT_ID.cloud.goog
    endpoints:
    - name: API_NAME.endpoints.PROJECT_ID.cloud.goog
      target: "IP_ADDRESS"
      

    Normalmente, o campo name e o campo endpoints.name são iguais.

  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 tem de estar entre aspas.

    Por exemplo, se implementar o seu serviço da API Endpoints numa instância de máquina virtual do Compute Engine, pode usar o endereço IP externo dessa máquina virtual. Em alternativa, se executar o código num grupo de instâncias de máquinas virtuais (ou pods do GKE) atrás de um equilibrador de carga, pode usar o endereço IP do equilibrador de carga.

  4. Implemente o ficheiro de configuração gRPC atualizado na gestão de serviços através do seguinte comando:
    gcloud endpoints services deploy service.yaml service.pb
    

Por exemplo, se o seguinte for especificado no ficheiro 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 implementa o ficheiro service.yaml através do comando gcloud anterior, o Service Management cria um registo 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. Pode ter de aguardar alguns minutos para que a nova configuração de DNS seja propagada.

O que se segue?