我有一个lambda订阅了Cloudwatch Log流。所有这些工作都是小事,也就是说,当日志流写入lambda时会收到通知。现在,有没有一种方法可以接收带有通知的日志或日志的一部分,或者我是否必须查询日志流以获取所需的信息?
致谢
安格斯
答案 0 :(得分:0)
可以。这是使用Node.js Lambda的方法:
var zlib = require('zlib');
exports.handler = function(input, context) {
// decode input from base64
var zippedInput = new Buffer.from(input.awslogs.data, 'base64');
// decompress the input
zlib.gunzip(zippedInput, function(error, buffer) {
if (error) { context.fail(error); return; }
// parse the input from JSON
var payload = JSON.parse(buffer.toString('utf8'));
// ignore control messages
if (payload.messageType === 'CONTROL_MESSAGE') {
return null;
}
// print the timestamp and message of each log event
payload.logEvents.forEach(function(logEvent) {
console.log(logEvent.timestamp + ' ' + logEvent.message);
});
});
};