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.googcomo 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.yamle adicione o campox-google-endpointsao 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
hoste o campox-google-endpoints.namepara 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,bookstoreoumy-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