En una entrada anterior, Link, comentaba como configurar una serie de lambdas + api Gateway que necesita acceso a una Dynamo DB todo local(en nuestra pc). 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 Link , 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á 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
En este punto podemos apreciar que 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 AWS sam.
¡Gracias, hasta la próxima!
Top comments (0)