拖尾 aws lambda/cloudwatch 日志

tailing aws lambda/cloudwatch logs

了解如何从

访问 lambda 日志

可以跟踪他们吗? (手动按刷新比较麻烦)

既然你提到了 tail-ing,我希望你能熟练地使用 CLI 工具在终端上工作。

您可以在本地安装 awslogs 并将其用于 tail Cloudwatch。

例如

$ awslogs get /aws/lambda/my-api-lambda ALL --watch --profile production

除了不再需要刷新任何东西(这就是 tail 的目的),我还喜欢您不必担心在不同的日志组之间跳转(与 CloudWatch 控制台不同)。

旁白: 我们注意到,在 AWS Lambda 函数进行大量调用后,拖尾日志变得非常慢。即使通过 AWS 控制台查看日志也非常慢。这是因为 "tail" 类型的实用程序需要连接到每个日志流。由于您在日志组本身上设置的策略,日志事件会过期,但日志流永远不会被清理。我制作了一些小的实用脚本来帮助解决这个问题:

https://github.com/four43/aws-cloudwatch-log-clean

希望这能让您免去等待这些日志的痛苦。

实际上,使用 Insights 有更好的方法(在同一个 CloudWatch 中)。

运行 查询日志组,你会得到你想要的:

fields @timestamp, @message
| sort @timestamp desc
| limit 20

您也可以将它添加到仪表板以始终拥有它"nearby"

如果您使用的是 awscli

您还可以通过命令行执行以下操作:

aws logs tail <your_log_group_name> --follow

--follow 标志将不断拉取新日志

您还可以使用--since设置从什么时间开始显示日志

支持:

s - seconds

m - minutes

h - hours

d - days

w - weeks

aws logs tail <your_log_group_name> --since 20m