-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlogEmailer.js
30 lines (26 loc) · 993 Bytes
/
logEmailer.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// For usage as an AWS Lambda function.
// Set Triggers to CloudWatch Log groups.
// Set Filter pattern to `ERROR` (or as desired).
// Set Filter name to desired email subject.
const zlib = require('zlib');
const aws = require('aws-sdk');
const ses = new aws.SES({ region: 'us-east-1' });
exports.handler = async function (event) {
const payload = Buffer.from(event.awslogs.data, 'base64');
const parsed = JSON.parse(zlib.gunzipSync(payload).toString('utf8'));
const bodyText = JSON.stringify(parsed, null, 2).replace(/\\n/g, ' \\\n ').replace(/\\t/g, '\\\n ');
console.log('bodyText:', bodyText);
var params = {
Source: '[email protected]',
Destination: {
ToAddresses: ['[email protected]'],
},
Message: {
Subject: { Data: parsed.subscriptionFilters[0] },
Body: {
Text: { Data: bodyText },
},
},
};
return ses.sendEmail(params).promise();
};