dynamodb-backup-restore
Advanced tools
Comparing version 0.0.11 to 0.0.12
@@ -67,2 +67,18 @@ 'use strict'; | ||
gulp.task('deploy-s3-bucket', (cb) => { | ||
let config = { | ||
S3Bucket: argv.s3bucket, | ||
S3Region: argv.s3region | ||
}; | ||
let deploy = new Deploy(config); | ||
deploy.backupBucket() | ||
.then(() => { | ||
cb(null); | ||
}) | ||
.catch(err => { | ||
cb(err); | ||
}); | ||
}); | ||
gulp.task('deploy-lambda', (cb) => { | ||
@@ -79,12 +95,2 @@ let config = { | ||
LambdaRoleName: argv.LambdaRoleName | ||
// S3Bucket: 'jobsheet.backup.us-east-1', | ||
// S3Region: 'us-east-1', | ||
// S3Prefix: 'test', | ||
// DbTable: 'ImpoLite-dev', | ||
// DbRegion: 'us-west-2', | ||
// LambdaName: 'test1', | ||
// LambdaRegion: 'us-west-2', | ||
// LambdaAlias: 'dev', | ||
// LambdaRoleName: 'backup-role' | ||
}; | ||
@@ -102,2 +108,20 @@ | ||
gulp.task('deploy-lambda-event', (cb) => { | ||
let config = { | ||
DbTable: argv.dbtable, | ||
DbRegion: argv.dbregion, | ||
LambdaName: argv.LambdaName, | ||
LambdaRegion: argv.LambdaRegion, | ||
}; | ||
let deploy = new Deploy(config); | ||
deploy.lambdaEvent() | ||
.then(() => { | ||
cb(null); | ||
}) | ||
.catch(err => { | ||
cb(err); | ||
}); | ||
}); | ||
let process = require('process'); | ||
@@ -104,0 +128,0 @@ |
@@ -6,4 +6,4 @@ { | ||
"dependencies": { | ||
"dynamodb-backup-restore ": "0.0.11" | ||
"dynamodb-backup-restore ": "0.0.12" | ||
} | ||
} |
@@ -27,2 +27,3 @@ 'use strict'; | ||
getStreamSettings() { | ||
console.time('Get Table Stream'); | ||
return new Promise((resolve, reject) => { | ||
@@ -34,2 +35,3 @@ let dynamoDb = new AWS.DynamoDB({ region: this.DbRegion }); | ||
dynamoDb.describeTable(params, (err, data) => { | ||
console.timeEnd('Get Table Stream'); | ||
if (err) { | ||
@@ -49,2 +51,3 @@ return reject(err); | ||
enableStream() { | ||
console.time('Enable Table Stream'); | ||
return new Promise((resolve, reject) => { | ||
@@ -60,2 +63,3 @@ let dynamoDb = new AWS.DynamoDB({ region: this.DbRegion }); | ||
dynamoDb.updateTable(params, (err, data) => { | ||
console.timeEnd('Enable Table Stream'); | ||
if (err) { | ||
@@ -62,0 +66,0 @@ return reject(err); |
@@ -22,2 +22,5 @@ 'use strict'; | ||
this.DbRegion = config.DbRegion; | ||
//package root dir | ||
this.curDir = path.join(__dirname, './../../../'); | ||
} | ||
@@ -42,2 +45,3 @@ | ||
getRole() { | ||
console.time('Get Lambda Role'); | ||
return new Promise(resolve => { | ||
@@ -49,4 +53,5 @@ let iam = new AWS.IAM(); | ||
iam.getRole(params, (err, data) => { | ||
console.timeEnd('Get Lambda Role'); | ||
if (err) { | ||
resolve({ IsExists: false }); | ||
return resolve({ IsExists: false }); | ||
} | ||
@@ -59,2 +64,3 @@ return resolve({ IsExists: true, Arn: data.Role.Arn }); | ||
createRole() { | ||
console.time('Create Lambda Role'); | ||
return new Promise((resolve, reject) => { | ||
@@ -79,2 +85,3 @@ let iam = new AWS.IAM(); | ||
iam.createRole(params, (err, data) => { | ||
console.timeEnd('Create Lambda Role'); | ||
if (err) { | ||
@@ -88,14 +95,4 @@ return reject(err); | ||
installPackages() { | ||
return new Promise((resolve, reject) => { | ||
exec('cd lambda && npm i', function (err, stdout, stderr) { | ||
if (err) { | ||
return reject(err); | ||
} | ||
return resolve(); | ||
}); | ||
}); | ||
} | ||
createPolicy(role) { | ||
console.time('Create Lambda Policy'); | ||
return new Promise((resolve, reject) => { | ||
@@ -132,2 +129,3 @@ let iam = new AWS.IAM(); | ||
iam.putRolePolicy(params, err => { | ||
console.timeEnd('Create Lambda Policy'); | ||
if (err) { | ||
@@ -141,2 +139,15 @@ return reject(err); | ||
installPackages() { | ||
console.time('Install Lambda Packages'); | ||
return new Promise((resolve, reject) => { | ||
exec('cd ' + this.curDir + 'lambda && npm i', function (err, stdout, stderr) { | ||
console.timeEnd('Install Lambda Packages'); | ||
if (err) { | ||
return reject(err); | ||
} | ||
return resolve(); | ||
}); | ||
}); | ||
} | ||
deploy(roleArn) { | ||
@@ -164,10 +175,11 @@ return this.getArchive() | ||
getArchive() { | ||
console.time('Create Lambda Code Archive'); | ||
let _this = this; | ||
let zip = new Zip(); | ||
return new Promise((resolve, reject) => { | ||
fse.walk('./lambda') | ||
fse.walk(this.curDir + 'lambda') | ||
.on('data', item => { | ||
let symbolicLink = item.stats.isSymbolicLink() && fs.existsSync(item.path); | ||
if (item.stats.isFile() || symbolicLink) { | ||
let name = path.relative('./lambda', item.path); | ||
let name = path.relative(this.curDir + 'lambda', item.path); | ||
let permissions = fs.statSync(item.path).mode | 0o444; | ||
@@ -190,7 +202,8 @@ zip.file(name, fs.readFileSync(item.path), { | ||
}); | ||
if (!fs.existsSync('./dist')) { | ||
fs.mkdirSync('./dist'); | ||
if (!fs.existsSync(this.curDir + 'dist')) { | ||
fs.mkdirSync(this.curDir + 'dist'); | ||
} | ||
_this.pathCompressed = path.join('./dist', _this.zipName); | ||
_this.pathCompressed = path.join(this.curDir + 'dist', _this.zipName); | ||
fs.writeFileSync(_this.pathCompressed, _this.zipBuffer); | ||
console.timeEnd('Create Lambda Code Archive'); | ||
}); | ||
@@ -200,2 +213,3 @@ } | ||
isFunctionExists() { | ||
console.time('Check if Lambda Exists'); | ||
return new Promise(resolve => { | ||
@@ -207,2 +221,3 @@ let lambda = new AWS.Lambda({ region: this.LambdaRegion }); | ||
lambda.getFunction(params, err => { | ||
console.timeEnd('Check if Lambda Exists'); | ||
return resolve(!err); | ||
@@ -214,2 +229,3 @@ }); | ||
create(roleArn) { | ||
console.time('Create Lambda Function'); | ||
return new Promise((resolve, reject) => { | ||
@@ -230,2 +246,3 @@ let lambda = new AWS.Lambda({ region: this.LambdaRegion }); | ||
lambda.createFunction(params, err => { | ||
console.timeEnd('Create Lambda Function'); | ||
if (err) { | ||
@@ -240,2 +257,3 @@ return reject(err); | ||
updateConfiguration(roleArn) { | ||
console.time('Update Lambda Configuration'); | ||
return new Promise((resolve, reject) => { | ||
@@ -252,2 +270,3 @@ let lambda = new AWS.Lambda({ region: this.LambdaRegion }); | ||
lambda.updateFunctionConfiguration(params, err => { | ||
console.timeEnd('Update Lambda Configuration'); | ||
if (err) { | ||
@@ -262,2 +281,3 @@ return reject(err); | ||
updateCode() { | ||
console.time('Update Lambda Code'); | ||
return new Promise((resolve, reject) => { | ||
@@ -270,2 +290,3 @@ let lambda = new AWS.Lambda({ region: this.LambdaRegion }); | ||
lambda.updateFunctionCode(params, err => { | ||
console.timeEnd('Update Lambda Code'); | ||
if (err) { | ||
@@ -293,2 +314,3 @@ return reject(err); | ||
publishVersion() { | ||
console.time('Publish Lambda Version'); | ||
return new Promise((resolve, reject) => { | ||
@@ -300,2 +322,3 @@ let lambda = new AWS.Lambda({ region: this.LambdaRegion }); | ||
lambda.publishVersion(params, (err, data) => { | ||
console.timeEnd('Publish Lambda Version'); | ||
if (err) { | ||
@@ -317,2 +340,3 @@ return reject(err); | ||
getAlias(lParams) { | ||
console.time('Get Lambda Alias'); | ||
return new Promise(resolve => { | ||
@@ -325,2 +349,3 @@ let lambda = new AWS.Lambda({ region: this.LambdaRegion }); | ||
lambda.getAlias(params, err => { | ||
console.timeEnd('Get Lambda Alias'); | ||
lParams.isAliasExists = !err; | ||
@@ -333,2 +358,3 @@ return resolve(lParams); | ||
updateAlias(lParams) { | ||
console.time('Update Lambda Alias'); | ||
return new Promise((resolve, reject) => { | ||
@@ -345,2 +371,3 @@ let lambda = new AWS.Lambda({ region: this.LambdaRegion }); | ||
lambda.updateAlias(params, err => { | ||
console.timeEnd('Update Lambda Alias'); | ||
if (err) { | ||
@@ -361,2 +388,3 @@ return reject(err); | ||
lambda.createAlias(params, err => { | ||
console.timeEnd('Update Lambda Alias'); | ||
if (err) { | ||
@@ -382,2 +410,3 @@ return reject(err); | ||
processEventSources(eventSources) { | ||
console.time('Update Lambda Event Sources'); | ||
let promises = []; | ||
@@ -395,2 +424,3 @@ eventSources.forEach(eventSource => { | ||
}); | ||
console.timeEnd('Update Lambda Event Sources'); | ||
return Promise.all(promises); | ||
@@ -400,2 +430,3 @@ } | ||
getEventSources(latestArn) { | ||
console.time('Get Lambda Event Sources'); | ||
return new Promise((resolve, reject) => { | ||
@@ -407,2 +438,3 @@ let lambda = new AWS.Lambda({ region: this.LambdaRegion }); | ||
lambda.listEventSourceMappings(params, (err, data) => { | ||
console.timeEnd('Get Lambda Event Sources'); | ||
if (err) { | ||
@@ -487,2 +519,3 @@ return reject(err); | ||
setParams() { | ||
console.time('Set Lambda Params'); | ||
return new Promise((resolve, reject) => { | ||
@@ -495,7 +528,7 @@ let config = { | ||
let data = JSON.stringify(config, null, 2); | ||
fs.writeFile('./lambda/config.json', data, err => { | ||
fs.writeFile(this.curDir + 'lambda/config.json', data, err => { | ||
console.timeEnd('Set Lambda Params'); | ||
if (err) { | ||
return reject(err); | ||
} | ||
return resolve(); | ||
@@ -502,0 +535,0 @@ }); |
@@ -45,2 +45,3 @@ 'use strict'; | ||
isBucketExists() { | ||
console.time('Check if Bucket Exists'); | ||
return new Promise(resolve => { | ||
@@ -52,2 +53,3 @@ let s3 = new AWS.S3({ region: this.S3Region, signatureVersion: 'v4' }); | ||
s3.headBucket(params, err => { | ||
console.timeEnd('Check if Bucket Exists'); | ||
if (err) { | ||
@@ -63,2 +65,3 @@ return resolve(false); | ||
createBucket() { | ||
console.time('Create Bucket'); | ||
return new Promise((resolve, reject) => { | ||
@@ -70,2 +73,3 @@ let s3 = new AWS.S3({ region: this.S3Region, signatureVersion: 'v4' }); | ||
s3.createBucket(params, err => { | ||
console.timeEnd('Create Bucket'); | ||
if (err) { | ||
@@ -80,2 +84,3 @@ return reject(err); | ||
getVersioningStatus() { | ||
console.time('Get Bucket Versioning Status'); | ||
return new Promise((resolve, reject) => { | ||
@@ -87,2 +92,3 @@ let s3 = new AWS.S3({ region: this.S3Region, signatureVersion: 'v4' }); | ||
s3.getBucketVersioning(params, (err, data) => { | ||
console.timeEnd('Get Bucket Versioning Status'); | ||
if (err) { | ||
@@ -97,2 +103,3 @@ return reject(err); | ||
enableVersioning() { | ||
console.time('Enable Bucket Versioning'); | ||
return new Promise((resolve, reject) => { | ||
@@ -107,2 +114,3 @@ let s3 = new AWS.S3({ region: this.S3Region, signatureVersion: 'v4' }); | ||
s3.putBucketVersioning(params, (err, data) => { | ||
console.timeEnd('Enable Bucket Versioning'); | ||
if (err) { | ||
@@ -117,2 +125,3 @@ return reject(err); | ||
updateBucketACL() { | ||
console.time('Update Bucket ACL'); | ||
return new Promise((resolve, reject) => { | ||
@@ -125,2 +134,3 @@ let s3 = new AWS.S3({ region: this.S3Region, signatureVersion: 'v4' }); | ||
s3.putBucketAcl(params, err => { | ||
console.timeEnd('Update Bucket ACL'); | ||
if (err) { | ||
@@ -135,2 +145,3 @@ return reject(err); | ||
updateBucketCORS() { | ||
console.time('Update Bucket CORS'); | ||
return new Promise((resolve, reject) => { | ||
@@ -152,2 +163,3 @@ let s3 = new AWS.S3({ region: this.S3Region, signatureVersion: 'v4' }); | ||
s3.putBucketCors(params, err => { | ||
console.timeEnd('Update Bucket CORS'); | ||
if (err) { | ||
@@ -162,2 +174,3 @@ return reject(err); | ||
updateBucketPolicy() { | ||
console.time('Update Bucket Policy'); | ||
return new Promise((resolve, reject) => { | ||
@@ -189,2 +202,3 @@ let s3 = new AWS.S3({ region: this.S3Region, signatureVersion: 'v4' }); | ||
s3.putBucketPolicy(params, err => { | ||
console.timeEnd('Update Bucket Policy'); | ||
if (err) { | ||
@@ -191,0 +205,0 @@ return reject(err); |
{ | ||
"name": "dynamodb-backup-restore", | ||
"version": "0.0.11", | ||
"version": "0.0.12", | ||
"description": "AWS DynamoDb tool for full, incremental backup and restore", | ||
@@ -5,0 +5,0 @@ "homepage": "https://github.com/Purple-Unicorns/DynamoDbBackUp", |
58730
1507