Skip to content

Instantly share code, notes, and snippets.

@pareddy113
Created October 4, 2017 15:03
Show Gist options
  • Save pareddy113/952a774aa927017bd2015f664c4162c9 to your computer and use it in GitHub Desktop.
Save pareddy113/952a774aa927017bd2015f664c4162c9 to your computer and use it in GitHub Desktop.
Lambda function to start and stop ec2 instance based on schedule using Scheduled Events. Event names: name-name-instanceStart / name-name-instanceStop
'use strict';
console.log('Loading the function...');
const AWS = require('aws-sdk');
const ec2 = new AWS.EC2({apiVersion: '2016-11-15'});
exports.handler = (event, context, callback) => {
var eventData = event.resources[0].split('/')[1];
console.log('Event name currently triggerd is = ',eventData);
var unprocessedEventArray = eventData.split('-');
var params = {
InstanceIds: [
'Instance-ID',
],
DryRun: false
};
console.log(unprocessedEventArray);
if(unprocessedEventArray[2] === 'instanceStart') {
ec2.startInstances(params, function(err, data) {
if (err) return callback(err, err.stack); // an error occurred
else return callback(null, "instance started"); // successful response
});
}
else if(unprocessedEventArray[2] === 'instanceStop'){
ec2.stopInstances(params, function(err, data) {
if (err) return callback(err, err.stack); // an error occurred
else return callback(null, "instance stopped"); // successful response
});
}
else{
return callback("error in the event name passed")
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment