如何匹配 aws cloudwatch 日志中的多个模式以触发 lambda

Posted

技术标签:

【中文标题】如何匹配 aws cloudwatch 日志中的多个模式以触发 lambda【英文标题】:how to match multiple patterns in aws cloudwatch log to trigger a lambda 【发布时间】:2021-12-24 05:40:42 【问题描述】:

我正在尝试设置 cloudwatch 事件来触发 lambda 函数,我想在日志中的消息是“完成请求之前退出进程”或“错误运行时退出并终止错误信号”时触发它。

指定一个很容易,并且工作正常(使用 serverless.yml 文件)

      - cloudwatchLog:
      logGroup: '/aws/lambda/hello'
      filter: 'Error Runtime exited with error signal killed'

但我需要为两条消息触发事件,使用OR 过滤器的正确语法是什么?

     - cloudwatchLog:
      logGroup: '/aws/lambda/hello'
      filter: 'Process exited before completing request' OR 'Error Runtime exited' with error signal killed' 

我尝试过使用'[Process exited before completing request, Error Runtime exited]',但这不起作用,aws 文档指定如何匹配一个或另一个单词,但不匹配这样的完整句子

【问题讨论】:

【参考方案1】:

这行得通:

- cloudwatchLog:
  logGroup: '/aws/lambda/hello'
  filter: '[(message="*Process exited before completing*") || (message="*signal: killed*") || (message="*Runtime.ExitError*")]' 

【讨论】:

以上是关于如何匹配 aws cloudwatch 日志中的多个模式以触发 lambda的主要内容,如果未能解决你的问题,请参考以下文章

如何从 AWS API Gateway cloudwatch 日志中获取用户的公共 IP?

AWS CloudWatch 中的指标、日志和事件之间有啥区别? [关闭]

将 aws lambda 日志重定向到 cloudwatch 中的特定日志组

AWS Elastic Beanstalk:将自定义日志添加到 CloudWatch?

使用 EKS 中的流利位在 AWS cloudwatch 中自动创建日志组

AWS Elastic Beanstalk PHP 日志不在 CloudWatch 中