Una vez implementada la API, los usuarios de tu API deberán acceder a ella mediante un nombre de dominio en vez de una dirección IP. Para hacerlo, tienes las alternativas siguientes:
- Configura
.endpoints.PROJECT_ID.cloud.goog
como el nombre de dominio (dondePROJECT_ID
es el ID de tu proyecto de Google Cloud). - O registra tu propio nombre de dominio, como
example.com
, que implica lo siguiente:- Configurar servidores de nombres DNS (o mediante Cloud DNS).
- Actualizar direcciones de registro.
- Crear y guardar registros DNS.
Si ya tienes una infraestructura DNS, o quieres registrar tu propio nombre de dominio, consulta Cómo entregar una API desde tu nombre de dominio para obtener más información.
En esta página, se describe cómo configurar las API de Cloud Endpoints para usar .endpoints.PROJECT_ID.cloud.goog
como nombre de dominio. Los pasos de configuración presentes en esta página se aplican a las API que usan OpenAPI y se ejecuten en Compute Engine, Google Kubernetes Engine o Kubernetes.
El nombre de dominio .endpoints.PROJECT_ID.cloud.goog
no es compatible con las API que se ejecutan en App Engine. Para las API en App Engine, recomendamos que utilices PROJECT_ID.appspot.com
como el nombre del servicio de Endpoints. Cuando implementas la API en App Engine, se crea una entrada DNS con un nombre con el formato PROJECT_ID.appspot.com
de forma automática.
Google administra el dominio .cloud.goog
, y los clientes de Google Cloud lo comparten. Debido a que los proyectos de Google Cloud garantizan tener un ID del proyecto global único, el nombre de dominio en el formato .endpoints.PROJECT_ID.cloud.goog
es único y puede usarse para la API. Configurar el nombre de dominio .endpoints.PROJECT_ID.cloud.goog
es opcional. Si lo prefieres, puedes registrar tu propio nombre de dominio.
Requisitos previos
Como punto de partida, en esta página, se supone que ya has creado tu API de Cloud Endpoints y que la has implementado en Compute Engine, Google Kubernetes o Engine Kubernetes. Si necesitas una API para realizar pruebas, puedes usar uno de los instructivos que te guían sobre cómo configurar y, luego, implementar una API de muestra.
Configura un DNS
El siguiente procedimiento describe cómo configurar DNS para las API de Cloud Endpoints que usan .endpoints.[PROJECT_ID].cloud.goog
como el nombre del servicio de Endpoints, donde [PROJECT_ID]
representa tu ID de proyecto de Google Cloud. Por conveniencia, el procedimiento hace referencia a tu archivo de configuración de OpenAPI como openapi.yaml
.
Para configurar DNS, haz lo siguiente:
- Abre
openapi.yaml
y agrega el campox-google-endpoints
al archivo como se muestra en el siguiente fragmento de código: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]"
Por lo general, configuras el campo
host
y el campox-google-endpoints.name
para que sean iguales. Cuando implementas tu especificación de OpenAPI, el texto especificado en el campohost
se usa como el nombre de tu servicio de Endpoints. - Reemplaza
[API_NAME]
con el nombre de la API (por ejemplo,bookstore
omy-cool-api
). - Reemplaza
[PROJECT_ID]
por tu ID del proyecto de Google Cloud. - Reemplaza
[IP_ADDRESS]
con una dirección IPv4.Por ejemplo, si implementas tu servicio API de Endpoints en una instancia de máquina virtual de Compute Engine, puedes utilizar la IP externa de esa máquina virtual. Además, si ejecutas tu código en un grupo de instancias de máquinas virtuales (o pods de GKE) tras un balanceador de cargas, puedes utilizar la dirección IP del balanceador de cargas.
- Implementa tu nueva especificación OpenAPI en Service Management mediante el siguiente comando:
gcloud endpoints services deploy openapi.yaml
Por ejemplo, si se especifica lo siguiente en el archivo 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"
Cuando implementas el openapi.yaml
con el comando gcloud
anterior, Service Management crea un registro A de DNS, my-cool-api.endpoints.my-project-
id.cloud.goog
, que da como resultado la dirección IP de destino, 192.0.2.1
. Es posible que debas esperar unos minutos para que la nueva configuración de DNS se propague.
¿Qué sigue?
- Habilita SSL para Endpoints
- Configura direcciones IP
- Nombra tu servicio API
- Entrega una API desde tu nombre de dominio