Configurar un DNS en el dominio cloud.goog

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 (donde PROJECT_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 gRPC que se ejecutan en Compute Engine, Google Kubernetes Engine o Kubernetes.

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.

Configurar un DNS

En el siguiente procedimiento se describe cómo configurar un DNS para API de Endpoints que usan .endpoints.PROJECT_ID.cloud.goog como el nombre de servicio de Endpoints. Para mayor comodidad, el procedimiento se refiere a tu archivo de configuración de servicio gRPC como service.yaml.

Para configurar DNS, haz lo siguiente:

  1. Abre service.yaml y agrega el campo endpoints al archivo como se muestra en el siguiente fragmento de 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"
      

    Por lo general, los campos name y endpoints.name son iguales.

  2. Reemplaza API_NAME con el nombre de la API (por ejemplo, bookstore o my-cool-api).
  3. Reemplaza IP_ADDRESS con una dirección IPv4. La dirección IP es una string y debe estar entre comillas.

    Por ejemplo, si implementas tu servicio de la API de Endpoints en una instancia de máquina virtual de Compute Engine, puedes usar la dirección 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 usar la dirección IP del balanceador de cargas.

  4. Implementa tu archivo de configuración de gRPC actualizado en Service Management con el siguiente comando:
    gcloud endpoints services deploy service.yaml service.pb
    

Por ejemplo, si se especifica lo siguiente en el archivo 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"

Cuando implementas el archivo service.yaml con el comando gcloud anterior, la Administración de servicios crea un registro A de DNS, my-cool-api.endpoints.my-project-id.cloud.goog, que se resuelve en la dirección IP de destino, 192.0.2.1. Es posible que debas esperar unos minutos para que se propague la nueva configuración de DNS.

¿Qué sigue?