in typescript/ecs/fargate-service-with-efs/lambda.js [4:72]
exports.handler = function(event, context, callback) {
var taskDefParams = {
taskDefinition: event["ResourceProperties"]["TaskDefinition"],
};
var ecsParams = {
service: event["ResourceProperties"]["EcsService"],
cluster: event["ResourceProperties"]["EcsCluster"]
};
var volume = {
name: event["ResourceProperties"]["EfsMountName"],
efsVolumeConfiguration: { fileSystemId: event["ResourceProperties"]["EfsFileSystemId"], rootDirectory: '/' }
};
var mountPoint = {
sourceVolume: event["ResourceProperties"]["EfsMountName"],
containerPath: '/' + event["ResourceProperties"]["EfsMountName"],
readOnly: false
};
console.log(event);
console.log(event["ResourceProperties"]);
try {
console.log("Getting Task Definition");
ecs.describeTaskDefinition(taskDefParams, function(err, data) {
if (err)
console.log(err, err.stack);
else
data['taskDefinition']['volumes'].push(volume);
data['taskDefinition']['containerDefinitions'][0]['mountPoints'].push(mountPoint);
delete data['taskDefinition']['taskDefinitionArn'];
delete data['taskDefinition']['revision'];
delete data['taskDefinition']['status'];
delete data['taskDefinition']['requiresAttributes'];
delete data['taskDefinition']['compatibilities'];
delete data['taskDefinition']['registeredAt'];
delete data['taskDefinition']['registeredBy'];
console.log("Register New Task Definition");
console.log(data['taskDefinition']);
ecs.registerTaskDefinition(data['taskDefinition'], function(err, data) {
if (err)
console.log(err, err.stack);
else
console.log(data);
console.log("Update Service");
ecs.updateService({
service: ecsParams['service'],
cluster: ecsParams['cluster'],
taskDefinition: data['taskDefinition']['taskDefinitionArn'],
},
function (err, data) {
if (err)
console.log(err, err.stack);
else
console.log(data);
sendResponse(event, context, 'SUCCESS', { 'Message': 'Resource creation successful!' });
});
console.log(data);
});
});
} catch (e) {
console.log('Errors' + e);
sendResponse(event, context, 'FAILED')
}
};