Me gustaría permitir a los clientes invocar mis API utilizando únicamente el nombre de dominio personalizado. ¿Cómo puedo desactivar la URL de punto de conexión de la API predeterminada execute-api para las API de REST o HTTP de Amazon API Gateway?
Descripción corta
Las API de REST y las API HTTP de la puerta de enlace API utilizan un punto de conexión de API predeterminado que tiene el siguiente formato «https://{api_id}.execute-api.{region}.amazonaws.com». Si utiliza un nombre de dominio personalizado para la puerta de enlace API de REST o HTTP, puede desactivar el punto de conexión predeterminado. Esto permite que todo el tráfico se dirija a las API a través del nombre de dominio personalizado.
Resolución
Siga estos pasos para desactivar el punto de conexión predeterminado mediante la consola de la puerta de enlace API, la interfaz de la línea de comandos de AWS (AWS CLI) o AWS CloudFormation.
Nota:
Consola de puerta de enlace API
API de REST
- Abra la consola de puerta de enlace API.
- En el panel de navegación, elija APIs (API) y, a continuación, elija la API de REST.
- En el panel de navegación, elija Settings (Configuración).
- En Default Endpoint (Punto de conexión predeterminado), elija Disabled (Deshabilitado) y, a continuación, elija Save Changes (Guardar cambios).
- En el panel de navegación, elija Resources (Recursos), Actions (Acciones) y, a continuación, elija Deploy API (Desplegar API).
API HTTP
- Abra la consola de puerta de enlace API.
- En el panel de navegación, elija APIs (API) y, a continuación, elija la API HTTP.
- En el panel de navegación, elija Settings (Configuración).
- En Default Endpoint (Punto de conexión predeterminado), elija Disabled (Deshabilitado) y, a continuación, elija Save Changes (Guardar cambios).
- En el panel de navegación, elija Resources (Recursos), Actions (Acciones) y, a continuación, elija Deploy API (Desplegar API).
AWS CLI
API de REST
Ejecute el comando update-rest-api de la CLI de AWS de esta manera:
aws apigateway update-rest-api --rest-api-id abcdef123 --patch-operations op=replace,path=/disableExecuteApiEndpoint,value='True'
Para desplegar la API actualizada, ejecute el comando create-deployment de la CLI de AWS de esta manera
aws apigateway create-deployment --rest-api-id abcdef123 --stage-name dev
Nota: Sustituya api_id abcdef123 y stage_name dev por su ID de API de REST y la fase correspondiente.
API HTTP
Ejecute el comando
update-api de la CLI de AWS de esta manera:
aws apigatewayv2 update-api --api-id abcdef123 --disable-execute-api-endpoint
Para desplegar la API actualizada, ejecute el comando create-deployment de la CLI de AWS de esta manera:
aws apigatewayv2 create-deployment --api-id abcdef123 --stage-name dev
Nota: Sustituya api_id abcdef123 y stage_name dev por su ID de API HTTP y la fase correspondiente.
Plantilla de CloudFormation
Para deshabilitar el punto de conexión predeterminado de una plantilla de CloudFormation, puede establecer el parámetro DisableExecuteApiEndpoint en True. Actualice la plantilla de CloudFormation para la API de REST o la API HTTP.
Importante: La desactivación del punto de conexión predeterminado genera errores HTTP 403 Forbidden (HTTP 403 Prohibido) si se invoca la API utilizando la URL del punto de conexión predeterminado.
Información relacionada
¿Cómo puedo solucionar los errores HTTP 403 de mi puerta de enlace API?