如何在日志中使用AWS Lambda错误的错误信息触发Lambda



我的最终目标是当任何其他Lambda出现错误时,都会触发一个Notification Lambda。我希望这个Notification Lambda接收记录的错误,并发送一个通知,例如一封带有问题Lambda名称+错误消息的电子邮件。理想情况下,我希望在AWS控制台中有一个指向日志位置的链接,但这似乎有些牵强。

Cloudwatch日志有以下错误:

{
"errorMessage": "2020-02-20T16:13:04.888Z abca3f75-d37f-4f3a-88f4-3d1ef49bb285 Task timed out after 3.00 seconds"
}

我一直在尝试设置一个cloudwatch事件规则,该规则是在lambda的过滤器上触发的,该过滤器包含文本"errorMessage",并将错误消息传递给Notification lambda。

我什么都没能做。有人能告诉我写cloudwatch事件规则的正确方法吗?该规则过滤a(lambda b(文本"errorMessage",并将错误消息+理想情况下的lambda名称传递到主题或直接传递到lambda?

我看到的解决这个问题的所有例子都是使用警报,它只传递有关警报的信息,而不是实际问题。

我想在代码中设置这一切,但通过控制台运行它的第一步也可以。

谢谢!

您可以尝试使用CloudWatch日志订阅过滤器并将其流式传输到Lambda

转到CloudWatch日志控制台,选择日志组的单选按钮,然后选择"Actions"下拉菜单->"Stream to AWS Lambda">

  1. 选择目标Lambda函数来处理日志
  2. 选择日志格式(在您的情况下,Lambda日志格式,如果您想要特定的错误消息,请选择"其他"并提供结构/Regex(
  3. 单击"开始流式处理"以将日志接收到另一个lambda

参考:https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SubscriptionFilters.html#LambdaFunctionExample

希望这能有所帮助!!

最新更新