Configuración de Dominios Personalizados con Serverless Framework

Clase 21 de 24Curso 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:

  1. Accede a la sección de API Mappings en AWS.
  2. Selecciona "Configure API Mappings" y agrega un nuevo Mapping.
  3. Selecciona el API y el Stage correspondiente. Si tienes múltiples Stages, como QA o Producción, estos aparecerán aquí.
  4. 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:

  1. Instalación del plugin: En tu proyecto, ejecuta npm install serverless-domain-manager --savedev.
  2. Configuración del plugin en Serverless:
    • Incluye el plugin en la sección de plugins del archivo serverless.yml.
    • Añade la configuración necesaria bajo la sección custom:
custom:
  customDomain:
    domainName: sls-course.platzi.com
    stage: dev
    basePath: mapping
    endpointType: EDGE
  1. 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!