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 quePROJECT_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 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 às APIs que usam a OpenAPI em execução no Compute Engine, Kubernetes Engine ou Kubernetes.
O nome de domínio .endpoints.PROJECT_ID.cloud.goog
não é compatível com APIs em execução no App Engine. Para APIs no Google App Engine, recomendamos que você use PROJECT_ID.appspot.com
como o nome do serviço do Endpoints. Quando você implanta a API no App Engine, uma entrada DNS com um nome no formato PROJECT_ID.appspot.com
é criada automaticamente.
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 Cloud Endpoints que usam .endpoints.[PROJECT_ID].cloud.goog
como o nome do serviço do Endpoints em que [PROJECT_ID]
representa o código do projeto do Google Cloud. Por conveniência, o procedimento se refere ao seu arquivo de configuração OpenAPI como openapi.yaml
.
Para configurar o DNS:
- Abra
openapi.yaml
e adicione o campox-google-endpoints
ao arquivo, conforme mostrado no snippet a seguir: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, você configura o campo
host
e o campox-google-endpoints.name
para que sejam os mesmos. Quando você implanta a especificação da OpenAPI, o texto especificado no campohost
é usado como nome do serviço do Endpoints. - Substitua
[API_NAME]
pelo nome de sua API (por exemplo,bookstore
oumy-cool-api
). - Substitua o
[PROJECT_ID]
pelo ID do projeto do Google Cloud. - Substitua
[IP_ADDRESS]
por um endereço IPv4.Por exemplo, se você implanta seu serviço da API 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.
- Implante a nova especificação OpenAPI no Service Management usando o comando:
gcloud endpoints services deploy openapi.yaml
Por exemplo, se o seguinte for especificado em um arquivo 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 você implanta o openapi.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 resolve 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
- Como ativar o SSL para o Endpoints
- Como configurar endereços IP
- Como nomear o serviço de sua API
- Como disponibilizar uma API do nome de domínio