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!