Configuración de Dominios Personalizados con Serverless Framework
Clase 21 de 24 • Curso Avanzado de Serverless Framework en AWS
Resumen
¿Cómo completar la integración de un proyecto serverless con diversas herramientas?
Al haber completado la integración con AWS SQS, Lambda, buckets en S3, eventos, y API Gateway, hemos llegado al corazón de un ecosistema serverless. Este tipo de arquitectura te permite crear aplicaciones más escalables y eficientes, aprovechando plataformas como AWS para gestionar automáticamente la infraestructura. Un aspecto crucial es asegurar nuestro proyecto, utilizando recursos como Custom Authorizer y API Keys en API Gateway, asegurando así que solo usuarios autorizados puedan acceder a nuestros servicios.
¿Qué son los Custom Domain Names y por qué son útiles?
Los Custom Domain Names son nombres de dominio personalizados que te permiten asociar tu API a un nombre de dominio amigable y reconocible, en lugar de las complejas URLs públicas que se generan por defecto. Esto no solo mejora la presentación profesional de tu servicio, sino que también facilita a los usuarios recordar cómo acceder a tus recursos. En este proyecto, hemos configurado un nombre de dominio personalizado como SLSCoursePlatzi.com
para acceder fácilmente a los recursos gestionados detrás de API Gateway.
¿Cómo configurar un API Mapping con un Custom Domain Name?
El API Mapping se ajusta para que el dominio personalizado esté conectado con el API deseado. Esto es crucial ya que permite definir rutas específicas para acceder a los recursos de la API. Para configurar un API Mapping:
- Accede a la sección de API Mappings en AWS.
- Selecciona "Configure API Mappings" y agrega un nuevo Mapping.
- Selecciona el API y el Stage correspondiente. Si tienes múltiples Stages, como QA o Producción, estos aparecerán aquí.
- Define un "Path" o ruta, que será un reemplazo de cualquier jefe de ruta predeterminado como "/dev". Este paso es opcional pero recomendado para ordenar mejor tus rutas.
Ejemplo de configuración de API Mapping
Dominio personalizado: SLSCoursePlatzi.com
Ruta/Path: /API
Final: SLSCoursePlatzi.com/API/Users/{userID}
¿Cómo automatizar la configuración de un Custom Domain Name con Serverless Framework?
Para eliminar la necesidad de configuraciones manuales y clics innecesarios, podemos utilizar el plugin Serverless Domain Manager en Serverless Framework:
- Instalación del plugin: En tu proyecto, ejecuta
npm install serverless-domain-manager --savedev
. - Configuración del plugin en Serverless:
- Incluye el plugin en la sección de
plugins
del archivoserverless.yml
. - Añade la configuración necesaria bajo la sección
custom
:
- Incluye el plugin en la sección de
custom:
customDomain:
domainName: sls-course.platzi.com
stage: dev
basePath: mapping
endpointType: EDGE
- Despliegue con Serverless: Ejecuta
sls deploy
para desplegar tu configuración.
Este flujo de trabajo asegura que tu aplicación esté lista para el movimiento y que las configuraciones sean reproducibles y coherentes en tus despliegues futuros.
¿Cómo verificar la integración en Postman?
Una vez configurado, es esencial validar el funcionamiento correcto de nuestros endpoints y mappings. Usamos herramientas como Postman para garantizar que la API responde correctamente:
- Configura Postman con la URL base del dominio personalizado.
- Asegúrate de incluir el header
x-APIKey
con el valor de la API Key correspondiente para autenticar tus peticiones. - Envía una solicitud para verificar la respuesta esperada, el recurso debería devolver los datos correctos utilizando el nuevo mapping configurado.
Este enfoque no solo ordena y optimiza tus APIs, sino que también incrementa la seguridad y profesionalismo de tus servicios serverless. Aprende y practica estos procesos para convertirte en un experto en arquitecturas nativas de la nube. ¡Sigue avanzando!