AWS sam local  start-api + logs

AWS sam local start-api + logs

Como configurar logs cuando ejecutamos ' sam local start-api '

En una entrada anterior Link, comentaba como configurar una serie de lambdas + api Gateway localmente que necesita acceso a una Dynamo DB (Tambien local). Es un escenario común en serverless probar localmente nuestras funciones antes del deploy o durante el proceso de desarrollo mientras sea posible.

En esta ocasión agregaremos la posibilidad de agregar un registro de logs. Retomando el escenario anterior, tenemos un conjunto de lambdas configuradas con AWS sam y queremos ejecutarlas localmente teniendo acceso a los logs de la aplicación.

sam local start-api -p 3002  --log-file logfile.txt

Como vemos, agregamos un parámetro para que los logs que ejecutemos dentro del código de nuestras lambas: --log-file logfile.txt en este parámetro simplemente definimos el nombre del archivo donde queremos que se vuelquen los de las lambdas.
Si ejecutamos las llamadas a la api que levanta local start-api en el puerto 3002 veremos en el archivo logfile.txt tendrá los logs en el mismo formato que aparecerán en CloudWatch.

$ more logfile.txt
START RequestId: c7b9cad9-70cd-4e1e-b205-6c58ee9c3d18 Version: $LATEST
2023-04-08T21:32:58.959Z        c7b9cad9-70cd-4e1e-b205-6c58ee9c3d18    INFO    Hello World from logs!
END RequestId: c7b9cad9-70cd-4e1e-b205-6c58ee9c3d18
REPORT RequestId: c7b9cad9-70cd-4e1e-b205-6c58ee9c3d18  Init Duration: 1.54 ms  Duration: 1348.28 ms    Billed Duration: 1349 ms        Memory Size: 128 MB     Max Memory Used: 128 MB

Seguiremos agregando comentarios de AWS sam, posiblemente la ejecución local de las lambdas sin deploy previo en los casos que sea posible es una de las mejores funciones que ofrece esta herramienta de infraestructura como código.

¡Gracias, hasta la próxima!

Referencias