如何根据 CloudWatch 上的日志消息发送警报

Ama*_*ari 17 amazon-web-services amazon-cloudwatch aws-lambda

我有一个 lambda,当给定操作失败时,它会发送到 STDERR,如下所示:

async function handler(event, context) {
  const success = do()
  if (success) {
    return { statusCode: 200 }
  }
  console.error('Failed :(')
  return { statusCode: 400 }
}
Run Code Online (Sandbox Code Playgroud)

这非常简单,但你明白了。当然,此消息会出现在 CloudWatch 上。我想知道是否可以(以及如何)设置 CloudWatch 警报,以便在我的日志中显示此消息时向我发送电子邮件。

我已经阅读了有关 CloudWatch 警报的文档,但它非常混乱,很难在那里找到任何内容。

Jas*_*rth 27

这基本上是一个三(或四)步骤的过程。

  1. 您需要从日志中创建指标过滤器。这将允许您在日志中出现“错误”(或您想要的任何其他条件)时创建一个指标。在这种情况下,指标的名称通常类似于“Errors”,但有一个完全属于您的命名空间。在该位置,您可以放置​​“/my-organization/my-service”之类的内容或任何对您有意义的内容。
  2. 创建指标警报。您可以在此警报中指定触发警报的条件。例如,如果任意 2 分钟内出现 1 个错误。该警报将指向您在上一步中创建的新指标。
  3. 将警报发送到 SNS 主题。
  4. 使用您的电子邮件订阅 SNS 主题。

  • 是否可以将记录的行与警报消息一起发送? (5认同)
  • 为此,您需要触发 Lambda 函数(或其他代码)并让它根据时间获取日志。我实在想不出其他什么了。我知道这是很多团队使用的解决方案。 (4认同)