2. DISCLAIMER
Todas las opiniones vertidas en la
siguiente charla o en estas diapositivas,
son exclusivamente del expositor. Estas
no reflejan de ninguna manera el
punto de vista o la opinión de Amazon
INC.
2
3. SERGIO CASTILLO YRIZALES
• Desarrollador por 11 años
• Trabajo en Amazon Vancouver - S3 Team
• Comer, Futbol, Dota
• @scyrizales
3
6. CLOUDFRONT
• Red global de distribución de contenido
• Permite acelerar tus aplicaciones
• Incluye contenido dinamico y estatico
• Escalable globalmente
• Muy Seguro
6
9. LAMBDA@EDGE
• Extension de AWS Lambda que permite ejecutar codigo Node.js globalmente en todas
las ubicaciones de AWS
• Personalizar tu contenido muy cerca a tus usuarios.
9
13. FUNCIONALIDADES:
• Permisios para leer o escribir headers, URIs y cookies
• Podemos generar respuestas personalizadas desde cero
• Podemos hacer llamadas de red (http, https, etc.) a recursos externos. (Solo en origin
events)
13
16. COMO?
• Trigger: Viewer request
• Inputs:
– URL requerida
– Tipo de dispositivo (i.e., User Agent)
– Session
• Output
– Generamos una respuesta directamente desde Lambda@Edge
especificando una redireccion a la experiencia mas adecuada
16
17. PRETTY URLS
• Re-escribir la URL para que el usuario
solicita para servir contenido sin
exponer el directorio interno de tu
organización
• Proveer experiencias personalizadas sin
comprometer la consistencias de lo que
ven tus usuarios
17
18. COMO?
• Trigger: Origin request
• Inputs
– URL requerida
• Outputs
– Re-escribir la URL que sera enviada al origen
– La respuesta sera añadida a la cache asi que la
siguiente vez no necesitas volver a ejecutar esta
función lambda
18
19. AUTORIZACION
• Inspeccionar cookies o custom headers
para autenticar usuarios justo @edge
• Reforzar seguridad para evitar el acceso a
contenido premium por parte de usuarios
no autorizados
19
20. COMO?
• Trigger: Viewer request
• Pre-requisitos:
– El usuario ya debe estar autenticado.
Comunmente esto es una cookie o un header JWT
• Inputs
– URL
– Credencial (Cookie o Header JWT)
• Outputs
– Permitir el request o responder con un 403… o
una redirección a la página de autenticación.
20
21. LIMITAR ACCESO AL CONTENIDO
• Forzar tiempos de expiración al acceder al
contenido
– Llamadas externas para confirmar la validez de la
sesión
– Re-direccionar a los usuarios a nuevas paginas
de autenticación
21
22. COMO?
• Trigger: Origin request
• Inputs
– URL / cookies
– Acceso a la base de datos con los permisos del
usuario (network call)
• Outputs
– Permitir el acceso al contenido si la autenticidad
de la cookie es correcta
– Re-direccionar a una pagina de autenticación
22
23. GENERAR CONTENIDO
• Generar una respuesta HTTP
– Páginas de error personalizadas
– Sitios estáticos
– Meta-tags
23
24. COMO?
• Trigger: Viewer request – Origin request
• Inputs:
– URI
– Headers
• Outputs
– Respuesta customizada basada en la URI y los headers
24
27. CONSIDERACIONES
• Cada vez que hagan un cambio en su Lambda tienen que publicar una nueva versión.
(no, no se puede republicar)
• Actualizar tu distribución de Cloudfront con la nueva versión de tu lambda (si toma
mucho tiempo este paso)
27