Quiero permitir que los clientes invoquen mis API solo con el nombre de dominio personalizado.
Descripción breve
Las API de REST y las API de HTTP de Amazon API Gateway utilizan un punto de conexión de API predeterminado en el siguiente formato: https://API_ID.execute-api.REGION.amazonaws.com. Si utiliza un nombre de dominio personalizado para sus API de REST o de HTTP de API Gateway, puede desactivar el punto de conexión predeterminado. Esto permite que todo el tráfico se dirija a sus API a través del nombre de dominio personalizado.
Solución
Para desactivar el punto de conexión predeterminado, utilice la consola de API Gateway, la Interfaz de la línea de comandos de AWS (AWS CLI) o AWS CloudFormation. Tras desactivar el punto de conexión predeterminado, debe iniciar un despliegue para que la actualización surta efecto.
Nota: Si recibe errores al ejecutar los comandos de la AWS CLI, asegúrese de utilizar la versión más reciente de la AWS CLI.
Consola de API Gateway
API de REST
- Abra la consola de API Gateway.
- En el panel de navegación, seleccione API y, a continuación, API de REST.
- En el panel de navegación, elija Configuración.
- En Punto de enlace predeterminado, elija Desactivado y, a continuación, seleccione Guardar los cambios.
- En el panel de navegación, elija Recursos, Acciones y, a continuación, elija Desplegar la API.
API de HTTP
- Abra la consola de API Gateway.
- En el panel de navegación, seleccione API y, a continuación, su API de HTTP.
- En el panel de navegación, seleccione API: API_NAME(API_ID).
- Seleccione Editar.
- En Punto de enlace predeterminado, elija Desactivadoy, a continuación, elijaGuardar.
AWS CLI
API de REST
Ejecute el comando update-rest-api de la AWS CLI:
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 AWS CLI:
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 etapa correspondiente.
API de HTTP
Ejecute el comando update-api de la AWS CLI:
aws apigatewayv2 update-api --api-id abcdef123 --disable-execute-api-endpoint
Para desplegar la API actualizada, ejecute el comando create-deployment de la AWS CLI:
aws apigatewayv2 create-deployment --api-id abcdef123 --stage-name dev
Nota: Sustituya api_id abcdef123 y stage_name dev por su ID de API de HTTP y la etapa correspondiente.
Plantilla de CloudFormation
Para desactivar el punto de conexión predeterminado de una plantilla de CloudFormation, defina el parámetro DisableExecuteApiEndpoint en True. Actualice la plantilla de CloudFormation para una API de REST o una API de HTTP.
Importante: Si invoca la API con la URL de punto de conexión predeterminado, se producirá un error al desactivar el punto de conexión predeterminado. Aparecerá el error HTTP 403 prohibido para las API de REST o el error HTTP 404 no encontrado para las API de HTTP.
Información relacionada
Invocación de una API de REST en Amazon API Gateway
¿Cómo soluciono los errores de HTTP 403 desde API Gateway?