我几乎没什么工作职责。我想每天运行另一个lambda函数,并获取每个lambda的最新日志。基于这个日志,我将生成一个简单的报告并通知slack。
lambda函数使用boto3用python编写。
报告应该是这样的:
Lambda-1 - ERROR - LOG
Lambda-2 - Succeeded
Lambda-3 - Succeeded (warn) - warn_message目前,我面临的问题是从cloudwatch获取最新的lambda日志和状态。
我玩了一下这个查询:
fields @timestamp, @message
| sort @timestamp desc
| filter level IN ["warn","info","error"] |
limit 1此查询返回具有此日志级别的最新日志。但是,这不是最新的lambda调用。因此,可能会生成一些错误的日志。
我的问题是:
提前谢谢。
发布于 2021-03-18 12:11:12
当您说latest时,我假设您的意思是生成lambda的报告何时运行。如果是这样的话,您可以根据时间戳过滤日志,如果在提到的时间戳中有日志。
对于lambda的fail status,您只需进行查询,甚至修改现有的查询,只要在应用程序或特定错误消息中记录异常,就可以查找异常。
就像这样
filter @message like /(?i)(Exception|error|fail)/| fields @timestamp, @message
| filter millis > 1546300800 # Tue Jan 01 2019 00:00:00 GMT+0000
and millis < 1546309800 # Tue Jan 01 2019 02:30:00 GMT+0000您的python可以构建并激发此查询,并根据结果编译结果。
它还可以通过过滤logstream名称来进一步定制
https://stackoverflow.com/questions/66689608
复制相似问题