30 lines
938 B
JavaScript
30 lines
938 B
JavaScript
const zlib = require("zlib");
|
|
const aws = require("aws-sdk");
|
|
const sns = new aws.SNS({
|
|
apiVersion: "2010-03-31",
|
|
region: 'ap-northeast-1'
|
|
});
|
|
|
|
exports.handler = function(input, context) {
|
|
var payload = new Buffer.from(input.awslogs.data, 'base64');
|
|
zlib.gunzip(payload, function(e, result) {
|
|
if (e) {
|
|
context.fail(e);
|
|
} else {
|
|
result = JSON.parse(result.toString('UTF-8'));
|
|
const publishMessage = {
|
|
Subject: `Detect Error(or Warning) in ${result.logGroup}`,
|
|
Message: result.logEvents.map((l) => l.message).join('\n'),
|
|
TopicArn: process.env.topicArn
|
|
};
|
|
console.log(publishMessage);
|
|
|
|
sns.publish(publishMessage, (err, data) => {
|
|
console.log(err, data);
|
|
if(err){
|
|
context.fail(err);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}; |