【发布时间】:2017-01-05 20:14:51
【问题描述】:
我想从 lambda 记录到特定的 CloudWatch 日志流。
目前,每个 lambda 都会将日志触发到一个唯一命名的日志流,并且通常会根据需要创建一个新的日志流。如果我同时触发 10 个 lambdas 并处理不同的事件并希望查看给定事件类型的特定日志流(我可以预先假设定义),这将是有问题的。
我希望能够在控制台中创建一个日志流,并指定从我的 lambda(python 代码)中记录到该特定日志流,最好不要求助于 boto3 模块(尽管这很好如果这是唯一的方法,当然)。
【问题讨论】:
-
尝试执行此操作不会有太多运气,因为即使您手动调用
AWS.CloudWatchLogs.pushLogEvents()将日志从您的 Lambda 函数 you're limited to 5 requests/second/log-stream 发送到特定日志流。这正是 Lambda 自动为您创建多个日志流而不是为每个 Lambda 函数写入单个日志流的原因。 -
如果您想在日志上拥有一些搜索功能,请将其通过管道传输到弹性搜索集群。效果很好。
-
@johni,有什么理由不直接从我的 lambda 登录到弹性搜索而不是通过 cloudwatch?
-
是的。一个 lambda 函数应该做最少的必要 IO 操作,并且做它应该做的事情。因此,对于日志记录,您只需在 lambda 中使用 console.log,因为 AWS 负责其余的工作。
-
嗯 - 为什么不使用显示在给定日志组的所有流上方的“搜索日志组”选项?这将显示跨流的聚合活动(您可以搜索。)
标签: amazon-web-services aws-lambda