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 (ondePROJECT_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:
- Abra
service.yaml
e adicione o campoendpoints
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 campoendpoints.name
são iguais. - Substitua
API_NAME
pelo nome da sua API (por exemplo,bookstore
oumy-cool-api
). - 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.
- 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?
- Configurar pontos finais
- Ativar SSL para Endpoints
- Reservar um endereço IP externo estático
- Publicar uma API a partir do seu nome de domínio