我的python3 lambda函数处理来自dynamodb的记录。我在cloudwatch中打印lambda执行的每一步。现在我正处于生产中部署和监控我的lambdas的阶段。有没有办法我可以知道哪些记录是由整个lambda以统一的方式执行的?
我也在使用X射线来了解我的lambdas花了多少时间和错误。此外,测量持续时间,调用,错误。我想知道有多少记录被执行?感谢。
答案 0 :(得分:2)
您可以使用CloudWatchLogs登录自定义日志组和日志流。
您可以在部署期间将配置名称组/流更改为不同阶段。
查看如何使用boto3 - Client.put_log_events
进行操作您可以查看我的样本中的NodeJS - there。对于python,代码更加简单和优雅。
PS:如果您对转换有任何问题,请发表评论。
答案 1 :(得分:0)
虽然打印每行要记录的日志可能会帮助您调试和排除代码故障,但这是一个非常手动且不可扩展的选项。此外,您会无休止地浏览无尽的日志。
在无服务器的世界中(尤其是在具有Lambda,DynamoDB,SQS,SNS,API网关和许多其他资源的AWS中),您应该使用正确的工具,以使您对架构具有可见性,并允许您可以快速解决问题,并确定无服务器的特定问题(超时,内存不足等)。
您可以尝试的一件事是从CloudWatch stream out all your logs到外部服务(例如ELK)。它将使您轻松地探索它们。
否则,我建议为无服务器使用专用的解决方案-那里有几种解决方案(我们自己的Epsagon,IOpipe,Dashbird)。