我正在尝试设置一个 lambda 函数来处理来自 AWS 实例的日志。为此,我将 CloudWatch Logs“触发器”配置为 Lambda 函数的输入。以下屏幕截图显示了 AWS 控制台上的相关配置 UI,以供参考。
我有一个日志组,该组中有一堆日志流,每个日志流对应一个日志文件。我只想处理日志组中 30 多个流中的 2 个日志事件。CloudWatch Logs Lambda 输入触发器允许您指定日志组和过滤器。奇怪的是,似乎没有基于流名称过滤日志的选项。我只能过滤 lambda 函数中的所有日志,但我宁愿在执行 lambda 之前完成这项工作,否则 99% 的时间都会使用不相关的日志来调用它。
关于过滤器参数,Lambda CloudWatch Log 集成文档指着过滤器和模式语法用于过滤器。但我看不到任何有关日志流名称的信息。
答案1
过滤器无法按您想要的方式工作。您无法根据日志流进行过滤,只能根据日志行内容进行过滤。
我建议您不要使用过滤器(例如,Lambda 接收所有日志事件),并在调用 Lambda 时检查事件元数据中的日志流。有关事件格式的详细信息,请参阅 Lambda 文档:
https://docs.aws.amazon.com/lambda/latest/dg/services-cloudwatchlogs.html