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
OpenAPI em execução no Compute Engine, no Google Kubernetes Engine ou no Kubernetes.
O nome do domínio .endpoints.PROJECT_ID.cloud.goog
não é suportado para APIs executadas no App Engine. Para APIs no App Engine, recomendamos que use PROJECT_ID.appspot.com
como o nome do serviço Endpoints. Quando implementa a API no App Engine, é criada automaticamente uma entrada DNS com um nome no formato PROJECT_ID.appspot.com
.
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 Cloud Endpoints que usam .endpoints.[PROJECT_ID].cloud.goog
como o nome do serviço Endpoints, onde [PROJECT_ID]
representa o ID do seu projeto Google Cloud. Por uma questão de conveniência, o procedimento refere-se ao seu ficheiro de configuração do OpenAPI como openapi.yaml
.
Para configurar o DNS:
- Abra
openapi.yaml
e adicione o campox-google-endpoints
ao ficheiro, conforme mostrado no seguinte fragmento:swagger: "2.0" host: "[API_NAME].endpoints.[PROJECT_ID].cloud.goog" x-google-endpoints: - name: "[API_NAME].endpoints.[PROJECT_ID].cloud.goog" target: "[IP_ADDRESS]"
Normalmente, configura o campo
host
e o campox-google-endpoints.name
para serem iguais. Quando implementa a especificação OpenAPI, o texto especificado no campohost
é usado como o nome do serviço Endpoints. - Substitua
[API_NAME]
pelo nome da sua API (por exemplo,bookstore
oumy-cool-api
). - Substitua
[PROJECT_ID]
pelo ID do seu Google Cloud projeto. - Substitua
[IP_ADDRESS]
por um endereço IPv4.Por exemplo, se implementar o serviço da API Endpoints numa instância de máquina virtual do Compute Engine, pode usar 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 a nova especificação OpenAPI na gestão de serviços através do seguinte comando:
gcloud endpoints services deploy openapi.yaml
Por exemplo, se o seguinte for especificado num ficheiro openapi.yaml
:
swagger: "2.0" host: "my-cool-api.endpoints.my-project-id.cloud.goog" x-google-endpoints: - name: "my-cool-api.endpoints.my-project-id.cloud.goog" target: "192.0.2.1"
Quando implementa o openapi.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?
- Ativar SSL para Endpoints
- Configurar endereços IP
- Atribuir um nome ao seu serviço de API
- Publicar uma API a partir do seu nome de domínio