Configurar DNS en el dominio cloud.goog

Una vez que se haya implementado tu API, los usuarios de la API deberán acceder a ella a través de un nombre de dominio en lugar de una dirección IP. A continuación, dispones de las siguientes opciones:

  • Configura .endpoints.PROJECT_ID.cloud.goog como nombre de dominio (donde PROJECT_ID es el ID de tu proyecto Google Cloud).
  • También puedes registrar tu propio nombre de dominio, como example.com, lo que implica lo siguiente:
    • Configurar servidores de nombres DNS (o usar Cloud DNS).
    • Actualizando las direcciones del registro.
    • Crear y mantener registros DNS.

    Si ya tienes una infraestructura de DNS o quieres registrar tu propio nombre de dominio, consulta Servir una API desde tu nombre de dominio para obtener más información.

En esta página se describe cómo configurar las APIs de Cloud Endpoints para usar .endpoints.PROJECT_ID.cloud.goog como nombre de dominio. Los pasos de configuración de esta página se aplican a las APIs que usan OpenAPI y que se ejecutan en Compute Engine, Google Kubernetes Engine o Kubernetes. El nombre de dominio .endpoints.PROJECT_ID.cloud.goog no se admite en las APIs que se ejecutan en App Engine. En el caso de las APIs de App Engine, te recomendamos que uses PROJECT_ID.appspot.com como nombre del servicio Endpoints. Cuando despliega la API en App Engine, se crea automáticamente una entrada de DNS con un nombre en el formato PROJECT_ID.appspot.com.

Google gestiona el dominio .cloud.goog, que comparten varios clientes de Google Cloud. Como se garantiza que los proyectos tienen un ID de proyecto único en todo el mundo, un nombre de dominio con el formato .endpoints.PROJECT_ID.cloud.goog es único y se puede usar como nombre de dominio de tu API. Google Cloud Configurar el nombre de dominio .endpoints.PROJECT_ID.cloud.googes opcional. Si lo prefieres, puedes registrar tu propio nombre de dominio.

Requisitos previos

Para empezar, en esta página se da por hecho que ya has creado tu API de Cloud Endpoints y la has desplegado en Compute Engine, Google Kubernetes Engine o Kubernetes. Si necesitas una API para hacer pruebas, puedes usar uno de los tutoriales que te explican cómo configurar y desplegar una API de ejemplo.

Configurar DNS

En el siguiente procedimiento se describe cómo configurar el DNS para las APIs de Cloud Endpoints que usan .endpoints.[PROJECT_ID].cloud.goog como nombre de servicio de Endpoints, donde [PROJECT_ID] representa tu ID de proyecto de Google Cloud. Para mayor comodidad, en este procedimiento se hace referencia al archivo de configuración de OpenAPI como openapi.yaml.

Para configurar el DNS, sigue estos pasos:

  1. Abre openapi.yaml y añade el campo x-google-endpoints al archivo, tal como se muestra en el siguiente 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, los campos host y x-google-endpoints.name tienen el mismo valor. Cuando implementas tu especificación de OpenAPI, el texto especificado en el campo host se usa como nombre de tu servicio de Endpoints.

  2. Sustituye [API_NAME] por el nombre de tu API (por ejemplo, bookstore o my-cool-api).
  3. Sustituye [PROJECT_ID] por el ID de tu proyecto. Google Cloud
  4. Sustituye [IP_ADDRESS] por una dirección IPv4.

    Por ejemplo, si despliegas tu servicio de API de Endpoints en una instancia de máquina virtual de Compute Engine, puedes usar la IP externa de esa máquina virtual. Si ejecutas el código en un grupo de instancias de máquinas virtuales (o pods de GKE) detrás de un balanceador de carga, puedes usar la dirección IP del balanceador de carga.

  5. Despliega tu nueva especificación de OpenAPI en Service Management con el siguiente comando:
    gcloud endpoints services deploy openapi.yaml

Por ejemplo, si se especifica lo siguiente en un 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 se resuelve en la dirección IP de destino, 192.0.2.1. Es posible que tengas que esperar unos minutos para que se propague la nueva configuración de DNS.

Siguientes pasos