DEV Community

Gustavo Ramirez
Gustavo Ramirez

Posted on

AWS SAM Accelerate por que cambio como desarrollo Lambdas

SAM Accelerate es una funcionalidad que muchos pasan por alto porque el marketing de AWS no le ha dado mucho amor. La uso todos los días cuando trabajo en Lambdas y creo que merece más atención.

El problema que resuelve

El ciclo tradicional de SAM es: editas código, haces sam build, haces sam deploy, esperas 2 o 3 minutos. Multiplica eso por 20 cambios al día y pierdes media hora solo esperando.

Cómo se activa

sam sync --stack-name mi-stack --watch
Enter fullscreen mode Exit fullscreen mode

Ese --watch deja el proceso corriendo y detecta cambios en tu código. Cuando guardas un archivo, sincroniza solo la Lambda afectada en segundos, no minutos.

Lo que hay que saber

  1. No sincroniza cambios en la plantilla YAML. Si cambias la plantilla, toca sam deploy completo.
  2. Solo sincroniza el código. Si agregas una dependencia nueva en package.json, sí tienes que hacer build.
  3. No lo uses en producción. Es una herramienta de desarrollo. El flag es --code por defecto para que solo toque código.

El flujo que uso

Tengo dos terminales abiertas. En una:

sam sync --watch --stack-name mi-app-dev
Enter fullscreen mode Exit fullscreen mode

En otra, ejecuto tests contra el ambiente dev que se está actualizando en vivo:

npm run test:e2e -- --env dev
Enter fullscreen mode Exit fullscreen mode

Edito, guardo, los tests corren contra el Lambda actualizado en segundos. El feedback loop se siente como trabajar localmente, pero con AWS real detrás.

Cuándo preferir sam local

sam local sigue teniendo su lugar. Lo uso cuando:

  • Quiero debuggear con breakpoints.
  • Estoy sin internet.
  • Hago pruebas que consumen muchos invocaciones y no quiero facturar.

Cierre

SAM Accelerate es de esas herramientas que después de usar, no quieres volver atrás. Si desarrollas Lambdas a diario, pruébalo esta semana.

Top comments (0)