¿Cómo puedo configurar un punto de conexión de dominio personalizado para varias API de API Gateway detrás de una distribución web de CloudFront?

Última actualización: 28/09/2022

Quiero usar un punto de conexión de dominio personalizado de Amazon API Gateway detrás de una distribución web de Amazon CloudFront. Luego, quiero reenviar la solicitud de API a varias API mediante el mapeo de rutas base. ¿Cómo se puede hacer?

Resolución

Cree el nombre de dominio personalizado para su API de REST, API HTTP o API de WebSocket

Si aún no lo ha hecho, cree su nombre de dominio personalizado y, a continuación, asócielo a dos API diferentes.

Nota: Un nombre de dominio personalizado para una API de WebSocket no se puede asignar a las API de REST ni a las API HTTP.

Para las API de REST, siga las instrucciones de Configuración de nombres de dominio personalizados para las API de REST.

Para las API HTTP, siga las instrucciones de Configuración de nombres de dominio personalizados para las API HTTP.

Para las API de WebSocket, siga las instrucciones de Configuración de nombres de dominio personalizados para las API de WebSocket.

Nota: Después de crear un nombre de dominio personalizado en API Gateway, debe crear o actualizar el registro de recursos de su proveedor de DNS para asignarlo a su punto de conexión de API. Para obtener más información, consulte Registrar un nombre de dominio.

El ejemplo de este artículo utiliza una configuración de nombre de dominio personalizada regional de la API de REST.

Ejemplos de URL de punto de conexión de API

https://restapiId1.execute-api.us-west-2.amazonaws.com/example1/home
https://restapiId2.execute-api.us-west-2.amazonaws.com/example2/home

Ejemplo de URL de dominio personalizado (sin mapeo de rutas base)

https://apigw.customdomain.com/example1/home
https://apigw.customdomain.com/example2/home

Cree una distribución web de CloudFront

1.    Abra la consola de CloudFront y elija Create Distribution (Crear distribución).

2.    En la página Seleccionar un método de entrega para su contenido, en Web, elija Get Started (Comenzar).

3.    En la página Crear distribución, en Origin Domain (Dominio de origen), pegue la URL de dominio personalizada de su API de forma similar a la del siguiente ejemplo:

Ejemplo de nombre de dominio de origen

https://apigw.customdomain.com

4. Para Origin path (Ruta de origen), déjelo en blanco. Nota: Si se introduce una ruta base incorrecta como ruta de origen al invocar la distribución web de CloudFront, se puede producir un error. Por ejemplo, un error de solicitud no autorizada que devuelve el error “Missing Authentication Token” (Falta el token de autenticación) y un código de respuesta 403 Forbidden (403 Prohibido).

5.    Para el Protocolo SSL de origen mínimo, se recomienda elegir TLSv1.2. No elija SSLv3. API Gateway no admite el protocolo SSLv3.

6.    En Protocol (Protocolo), elija HTTPS Only (Solo HTTPS). Nota: API Gateway no admite puntos de conexión HTTP sin cifrar. Para obtener más información, consulte las Preguntas frecuentes de Amazon API Gateway.

7.    (Opcional) Para reenviar encabezados personalizados al origen, seleccione Add header (Agregar encabezado) e introduzca el nombre y el valor del encabezado. Nota: Para obtener una lista de los encabezados personalizados que CloudFront no puede agregar, consulte Encabezados personalizados que CloudFront no puede agregar a las solicitudes de origen.

8.    Elija Create Distribution (Crear distribución).

Una vez que CloudFront cree la distribución, el valor de la columna Status (Estado) de la distribución cambia de InProgress (En progreso) a Deployed (Implementado).

Para obtener más información, consulte Crear una distribución.

Pruebe su distribución web de CloudFront

1.    Abra la consola de CloudFront y copie el nombre de dominio de su distribución web en el portapapeles de forma similar al ejemplo siguiente:

Ejemplo de nombre de dominio no personalizado

a222222bcdefg5.cloudfront.net

2.    Siga las instrucciones para Probar una distribución.

Una prueba exitosa arroja una respuesta de 200 OK. Si aparece un código 500 server error (error 500 del servidor), es posible que la distribución web no esté implementada. Si no recibe respuesta, el registro DNS de CloudFront aún no se ha propagado.

Una vez creada la distribución de CloudFront, la configuración se configurará de la siguiente manera:

a222222bcdefg5.cloudfront.net/example1/home --> apigw.customdomain.com/example1/home --> API-1

a222222bcdefg5.cloudfront.net/example2/home --> apigw.customdomain.com/example2/home --> API-2

Ahora puede realizar una solicitud a dos API desde una única distribución de CloudFront con su nombre de dominio personalizado de API Gateway.

Para configurar el reenvío de los encabezados de autorización entrantes para su distribución web de CloudFront, consulte ¿Cómo configuro API Gateway con mi propia distribución de CloudFront?