是否可以从订阅中提取Cloudwatch日志的内容

时间:2018-12-14 09:39:19

标签: amazon-web-services aws-lambda amazon-cloudwatch amazon-cloudwatchlogs

我有一个lambda订阅了Cloudwatch Log流。所有这些工作都是小事,也就是说,当日志流写入lambda时会收到通知。现在,有没有一种方法可以接收带有通知的日志或日志的一部分,或者我是否必须查询日志流以获取所需的信息?

致谢

安格斯

1 个答案:

答案 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);
        });
    });
};