CloudWatch Insights:获取错误 lambda 的日志

Mat*_*oli 10 amazon-cloudwatch aws-lambda amazon-cloudwatchlogs aws-cloudwatch-log-insights

一个 lambda 可以有一个成功或错误的结果。

我想查看错误的 lambda 日志。我正在尝试通过 CloudWatch Insights 查询来做到这一点。

我怎样才能做到这一点?

小智 22

如果有人来这里寻找解决方案,这就是我使用的:

过滤@message 像 /(?i)(Exception|error|fail)/| 字段@timestamp,@message | 排序@timestamp desc | 限制 20

  • 抱歉,但这并没有真正涵盖 lambda 中的所有错误情况,这是日志行中单词“错误”或“异常”的简单匹配。 (4认同)
  • 当 lambda 任务超时时,您还可能会收到 lambda 错误。在这种情况下,请使用“filter @message like“Task timed out””来查找它们。 (4认同)
  • 这仅返回发生错误的确切日志消息,而不是发生错误的执行的执行中的所有日志。这并没有回答这个问题(这里也没有任何其他答案) (2认同)

Adi*_*iii 12

我使用以下查询来获取答案中提到的查询未涵盖的那些错误,并且我只能在监控仪表板中看到失败。

fields @timestamp, @message
| sort @timestamp desc
| filter @message not like 'INFO' 
| filter @message not like 'REPORT'
| filter @message not like 'END'
| filter @message not like 'START'
| limit 20
Run Code Online (Sandbox Code Playgroud)

这是此查询涵盖的一些示例

暂停

@ingestionTime  
1600997135683
@log    
060558051165:/aws/lambda/prod-
@logStream  
2020/09/25/[$LATEST]abc
@message    
2020-09-25T01:25:35.623Z d0801056-abc-595a-b67d-47b14d3e9a20 Task timed out after 30.03 seconds
@requestId  
d0801056-abc-595a-b67d-47b14d3e9a20
@timestamp  
1600997135623
Run Code Online (Sandbox Code Playgroud)

创新错误

@ingestionTime  
1600996797947
@log    
060558051165:/aws/lambda/prod-****
@logStream  
2020/09/25/[$LATEST]123
@message    
2020-09-25T01:19:48.940Z 7af13cdc-74fb-5986-ad6b-6b3b33266425 ERROR Invoke Error {"errorType":"Error","errorMessage":"QueueProcessor 4 messages failed processing","stack":["Error:QueueProcessor 4 messages failed processing"," at Runtime.handler (/var/task/lambda/abc.js:25986:11)"," at process._tickCallback (internal/process/next_tick.js:68:7)"]}
@requestId  
7af13cdc-74fb-5986-ad6b-6b3b33266425
@timestamp  
1600996788940
errorMessage    
QueueProcessor 4 messages failed processing
errorType   
Error
stack.0 
Error: QueueProcessor 4 messages failed processing
stack.1 
at Runtime.handler (/var/task/lambda/abcBroadcast.js:25986:11)
stack.2 
at process._tickCallback (internal/process/next_tick.js:68:7)
Run Code Online (Sandbox Code Playgroud)

节点运行时的另一个示例

Value
@ingestionTime  
1600996891752
@log    
060558051165:/aws/lambda/prod-
@logStream  
2020/09/24/[$LATEST]abc
@message    
2020-09-25T01:21:31.213Z 32879c8c-abcd-5223-98f9-cb6b3a192f7c ERROR (node:6) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
@requestId  
32879c8c-7242-5223-abcd-cb6b3a192f7c
@timestamp  
1600996891214
Run Code Online (Sandbox Code Playgroud)

  • 惊人的答案。谢了哥们 (3认同)

ket*_*ham -2

在控制台中,导航到 lambda 的配置页面。单击左上角的 ,Monitoring然后单击View logs in CloudWatch右侧的 。

  • 抱歉,我没有意识到你问题的特殊性。我理解您的沮丧——我什至在所有 lambda 实例的日志中搜索字符串时都遇到了困难。如果这是可能的,您将能够简单地执行“ERROR”搜索并轻松找到所有错误的 lambda。我希望你能找到方法:) (2认同)