Skip to content

Instantly share code, notes, and snippets.

@marufeuille
Created November 3, 2016 12:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save marufeuille/1d959eadd67bda25fd055879c010dd32 to your computer and use it in GitHub Desktop.
Save marufeuille/1d959eadd67bda25fd055879c010dd32 to your computer and use it in GitHub Desktop.
exports.handler = function (event, context, callback) {
var https = require('https');
var AWS = require('aws-sdk');
var imsi = 'PUT YOUR IMSI';
var to_mail_addr = 'PUT YOUR MAIL ADDRESS YOU RECIEVED ALERT MAIL';
var from_mail_addr = 'PUT YOUR MAIL ADDRESS YOU SEND ALERT MAIL(SES)';
var soracom_key = 'PUT YOUR SORACOM API KEY'
var soracom_token = 'PUT YOUR SORACOM API TOKEN'
var aws_key = 'PUT YOUR AWS API KEY TO SEND MAIL FROM SES'
var aws_sec = 'PUT YOUR AWS API SECRET KEY TO SEND MAIL FROM SES'
var kms = new AWS.KMS({ region: 'ap-northeast-1' });
var options = {
hostname: 'api.soracom.io',
path: '/v1/subscribers/' + imsi,
method: 'GET',
headers: {
'X-Soracom-API-Key': soracom_key,
'X-Soracom-Token': soracom_token
}
};
var req = https.request(options, (response) => {
var buf = "";
response.on('data', (chunk) => {
buf = buf + chunk;
})
response.on('end', () => {
const body = JSON.parse(buf);
if (body.sessionStatus.online != true) {
var ses = new AWS.SES({apiVersion: '2010-12-01',
accessKeyId: aws_key,
secretAccesskey: aws_token,
region: 'us-east-1'
});
var params = {
Destination: {
ToAddresses: [ to_mail_addr ]
},
Message: {
Body: {
Text: {
Data: 'SIM(' + body.imsi + ') is offline',
Charset: 'utf-8'
}
},
Subject: {
Data: 'SIM error occured',
Charset: 'utf-8'
}
},
Source: from_mail_addr
};
ses.sendEmail(params, function (err, data) {
if (err) { callback ('e', err); }
else { callback(null, data); }
});
}
});
});
req.end();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment