Servir una API desde tu nombre de dominio

En esta página se muestra cómo servir una API desde un dominio personalizado que te pertenezca. Por ejemplo, example.com.

Como alternativa a usar tu propio nombre de dominio, puedes usar un nombre de dominio gestionado por Google. Para obtener más información, consulta el artículo Usar un dominio gestionado por Google.

Antes de empezar

Configurar el proyecto de API para usar tu nombre de dominio

Sigue las instrucciones de la pestaña correspondiente.

App Engine

Para configurar tu proyecto de API de forma que use tu dominio verificado, sigue las instrucciones que se indican en Añadir un dominio personalizado a tu aplicación.

Compute Engine

La forma recomendada de servir una API desde instancias de Compute Engine es usar un balanceador de carga en un grupo de instancias. Debes reservar una dirección IP externa para el nombre de dominio y usarla en el balanceador de carga.

Para servir la API desde un nombre de dominio, sigue estos pasos:

  1. Reserva al menos una dirección IP externa estática en tu proyecto:

    Ir a la página Direcciones IP externas

    1. Asigna el nombre que quieras a la dirección IP reservada
    2. En Type (Tipo), haga clic en Global (Global).
    3. En Adjunto a, haz clic en Ninguno. Más adelante, asociarás la dirección IP a un balanceador de carga.
  2. Visita la cuenta de tu proveedor de dominios y edita la configuración de tu dominio. Debes crear un registro A que contenga el nombre de tu API, por ejemplo, myapi.example.com, con la dirección IP externa en su campo de datos.
  3. Crea un grupo de instancias que incluya las instancias que ejecutan tu API y Extensible Service Proxy (ESP:

    Ve a la página Crear un grupo de instancias

    1. Asigna el nombre que quieras al grupo y añade una descripción.
    2. En la lista Zona, haz clic en la zona que usa tu instancia de API.
    3. En la lista Definición de instancia, haga clic en Seleccionar instancias disponibles.
    4. En el campo VM Instances (Instancias de VM), añade la instancia de VM que ejecuta la API.
    5. Haz clic en Crear.
  4. Crea y configura un balanceador de carga HTTP(S):

    Ve a la página Crear un balanceador de carga HTTP(S).

    1. Haz clic en Define a Backend Service (Definir un servicio de backend) > Create or select a backend service (Crear o seleccionar un servicio de backend).
      Configuración de backend
    2. Asigna el nombre y la descripción que quieras a esta configuración de servicio de backend.
    3. En el campo Protocol (Protocolo), selecciona el protocolo que quieras admitir a través del balanceador de carga: HTTP o HTTPS.
    4. En la lista Grupo de instancias, haz clic en el grupo de instancias que quieras.
    5. En el campo Números de puerto, introduce 8080.
    6. Haz clic en Comprobación del estado para configurar las comprobaciones del estado:
      • Introduce un nombre para la configuración de la comprobación del estado.
      • Asigna el puerto 8080.
      • Para aceptar los valores predeterminados restantes, haz clic en Guardar.
    7. Por ahora, acepta los valores predeterminados del resto de la configuración. Puedes hacer cambios más adelante si lo necesitas, como añadir puertos.
    8. No es necesario que definas nada en las reglas de host y ruta. Puedes reenviar todo a tu API de backend mediante los filtros predeterminados Cualquier resultado sin coincidencia. Esto significa que todo el tráfico que llega al balanceador de carga se dirige a la API en el puerto 8080 (el puerto predeterminado), tal como se ha definido en los pasos anteriores.
    9. Haz clic en Configuración de frontend.
      Configuración de frontend
      • En el campo Protocol (Protocolo), selecciona el protocolo que quieras admitir a través del balanceador de carga: HTTP o HTTPS.
      • En la lista IP, haz clic en la dirección IP externa que has creado antes.
      • Para el protocolo HTTPS, debe usar SSL. En la lista Certificado, haz clic en el certificado que quieras.
      • Si quieres admitir otro protocolo, haz clic en Añadir IP y puerto de frontend, especifica el protocolo, la misma dirección IP externa y un puerto diferente.
    10. Para crear el balanceador de carga totalmente configurado, haz clic en Crear. Si el botón Crear no está habilitado, comprueba los componentes que acabas de configurar: debería aparecer una marca de verificación junto a cada uno de los componentes de configuración. Si no aparece la marca de verificación, significa que no has completado la configuración.
    11. Una vez que se propaguen los cambios de DNS, las solicitudes se enviarán a tu API mediante el balanceador de carga.

GKE

Para ofrecer una API a través de un dominio en Google Kubernetes Engine (GKE), debes exponer ESP como un servicio. Para ello, usa la dirección IP externa devuelta en la configuración DNS de tu dominio. Ten en cuenta que GKE hace el balanceo de carga automáticamente.

Para exponer tu API como un servicio, sigue estos pasos:

  1. Si aún no lo has hecho, configura un servicio de Kubernetes para tus back-ends de API. Crea un archivo de configuración de servicio, service.yaml, con un contenido similar al siguiente:
                apiVersion: v1
                kind: Service
                metadata:
                  name: echo
                spec:
                  ports:
                  - port: 80
                    targetPort: 8081
                    protocol: TCP
                  selector:
                    app: echo-app
                  type: LoadBalancer
                  
    • Cambia la etiqueta selector para que coincida con las etiquetas de tu backend (app: echo-app en este ejemplo).
    • Asegúrate de que targetPort coincida con el puerto que usa ESP configurado en tus back-ends de API. ESP usa el puerto 8081 de forma predeterminada.
  2. Despliega el servicio de Kubernetes:
                kubectl apply -f service.yaml
                
  3. Consulta la dirección IP externa asignada a tu servicio expuesto:
                kubectl get services
                
    La salida muestra una dirección EXTERNAL-IP similar a la siguiente:
                NAME         CLUSTER-IP     EXTERNAL-IP      PORT(S)    AGE
                hello-node   10.X.XXX.202   10X.XXX.XX.123   8080/TCP   1m
          
  4. Cambia la IP externa generada de efímera a estática.

    Ir a la página Direcciones IP externas

    1. Selecciona tu dirección IP externa en la lista.
    2. En la lista Type (Tipo), haz clic en Static (Estático).
  5. Visita la cuenta de tu proveedor de dominios y edita la configuración de tu dominio. Debe crear un registro A que contenga el nombre de su API (por ejemplo, myapi.example.com) y la dirección IP externa en su campo de datos.

Siguientes pasos