Entradas

Mostrando las entradas etiquetadas como Backend

Errores CORS en API Gateway: Cómo habilitarlo y qué cabeceras debe devolver tu Lambda

Tu frontend hace una petición a API Gateway y el navegador la bloquea con un error CORS antes de que llegue ninguna respuesta útil. El problema casi nunca está en un solo lugar: API Gateway necesita responder al preflight OPTIONS , y tu función Lambda debe incluir las cabeceras correctas en cada respuesta. Si falla cualquiera de los dos lados, el navegador rechaza la llamada igualmente. TL;DR — Resumen rápido Capa Qué debes configurar Dónde API Gateway (REST) Habilitar CORS en el recurso, desplegar el stage Consola / CLI / SAM API Gateway (HTTP) Configurar CORS en la sección 'CORS' de la API Consola / CLI Lambda (ambos tipos) Incluir Access-Control-Allow-Origin y cabeceras relacionadas en la respuesta Código de la función Preflight OPTIONS Debe responder con 200 y las cabeceras correctas API Gateway o Lambda Cómo funciona CORS en API Gateway CORS (Cross-Origin Resource Sharing) es un meca...

Cómo Crear una URL Prefirmada de S3 para Acceso Temporal a Archivos Privados

Tienes un archivo privado en S3 y necesitas que un usuario lo descargue sin exponerlo públicamente ni crear credenciales temporales de IAM. La URL prefirmada de S3 es la solución estándar para este patrón: genera un enlace con firma criptográfica que expira en el tiempo que tú definas, sin cambiar los permisos del bucket ni del objeto. TL;DR: Resumen Rápido Aspecto Detalle ¿Qué es? URL firmada con credenciales IAM que permite acceso temporal a un objeto S3 privado Expiración típica 3600 segundos (1 hora) — configurable SDK principal AWS SDK v3 para Node.js / Python (boto3) Operación firmada GetObject para descarga, PutObject para subida Permiso IAM requerido s3:GetObject sobre el recurso objetivo ¿Cambia permisos del bucket? No. El acceso es delegado por las credenciales del firmante Cómo Funciona una URL Prefirmada de S3 Una URL prefirmada no es magia — es una URL de S3 estándar con p...

ALB Devuelve 502 Bad Gateway: Diagnóstico Cuando las Instancias Aparecen como Saludables

El 502 de un Application Load Balancer con instancias marcadas como 'Healthy' es uno de los escenarios más frustrantes en producción: el health check pasa, el target group parece correcto, pero el tráfico real falla. El problema no está en la disponibilidad del backend — está en lo que el backend responde cuando recibe una petición HTTP real. TL;DR: Causas Comunes del 502 en ALB Causa Síntoma Observable Capa Afectada Respuesta HTTP malformada del backend 502 inmediato, sin latencia Aplicación Conexión cerrada prematuramente por el backend 502 con target_processing_time muy bajo TCP/Aplicación Keep-alive timeout desalineado 502 intermitente bajo carga TCP Respuesta excede límites de cabeceras HTTP 502 en rutas específicas con cabeceras grandes Aplicación Backend cierra conexión durante la respuesta 502 con target_processing_time parcial Aplicación/Red Cómo Funciona la Conexión ALB–Back...