Skip to content

Instantly share code, notes, and snippets.

@burdandrei
Created January 20, 2016 10:40
Show Gist options
  • Save burdandrei/f7f8e79492003d9a28a5 to your computer and use it in GitHub Desktop.
Save burdandrei/f7f8e79492003d9a28a5 to your computer and use it in GitHub Desktop.
Template for Lambda ECS scale
console.log('Loading event');
var aws = require('aws-sdk');
exports.handler = function(event, context) {
var ecsService = 'sample-webapp';
var ecsCluster = 'sample-cluster';
var ecsRegion = 'us-west-2';
var maxCount = 2;
var ecs = new aws.ECS({region: ecsRegion});
ecs.describeServices({services:[ecsService], cluster: ecsCluster}, function(err, data) {
if (err) {
console.log(err, err.stack);
} else {
var desiredCount = data.services[0].desiredCount;
if (desiredCount < maxCount) {
desiredCount++;
var params = {
service: ecsService,
cluster: ecsCluster,
desiredCount: desiredCount
};
ecs.updateService(params, function(err, data) {
if (err) {
console.log(err, err.stack);
} else {
console.log(data);
context.succeed();
}
});
} else {
console.log('Service count is already max.');
context.fail();
}
}
});
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment