diff --git a/README.md b/README.md index 669d5d7e..d67b42a9 100644 --- a/README.md +++ b/README.md @@ -135,6 +135,7 @@ $ node-lambda deploy --help -x, --excludeGlobs [] Add a space separated list of file(type)s to ignore (e.g. "*.json .env") -D, --prebuiltDirectory [] Prebuilt directory -z, --deployZipfile [] Deploy zipfile + -T, --deployTimeout [120000] Deploy Timeout ``` ## Custom Environment Variables diff --git a/bin/node-lambda b/bin/node-lambda index b60def29..07aec2f5 100755 --- a/bin/node-lambda +++ b/bin/node-lambda @@ -71,6 +71,7 @@ var EVENT_FILE = process.env.EVENT_FILE || 'event.json'; var PACKAGE_DIRECTORY = process.env.PACKAGE_DIRECTORY; var CONTEXT_FILE = process.env.CONTEXT_FILE || 'context.json'; var PREBUILT_DIRECTORY = process.env.PREBUILT_DIRECTORY || ''; +var DEPLOY_TIMEOUT = process.env.DEPLOY_TIMEOUT || 120000; var DOCKER_IMAGE = process.env.DOCKER_IMAGE || ''; var DEPLOY_ZIPFILE = process.env.DEPLOY_ZIPFILE || ''; var AWS_DLQ_TARGET_ARN = (function() { @@ -117,6 +118,7 @@ program .option('-x, --excludeGlobs [' + EXCLUDE_GLOBS + ']', 'Space-separated glob pattern(s) for additional exclude files (e.g. "event.json dotenv.sample")', EXCLUDE_GLOBS) .option('-D, --prebuiltDirectory [' + PREBUILT_DIRECTORY + ']', 'Prebuilt directory', PREBUILT_DIRECTORY) + .option('-T, --deployTimeout [' + DEPLOY_TIMEOUT + ']', 'Deploy Timeout', DEPLOY_TIMEOUT) .option('-z, --deployZipfile [' + DEPLOY_ZIPFILE + ']', 'Deploy zipfile', DEPLOY_ZIPFILE) .action(function (prg) { lambda.deploy(prg); diff --git a/lib/main.js b/lib/main.js index c8bfdd2e..9c905bd8 100644 --- a/lib/main.js +++ b/lib/main.js @@ -736,6 +736,10 @@ Lambda.prototype.deploy = function (program) { aws_security.sessionToken = program.sessionToken; } + if (program.deployTimeout) { + aws.config.httpOptions.timeout = parseInt(program.deployTimeout); + } + aws.config.update(aws_security); var lambda = new aws.Lambda({ diff --git a/test/main.js b/test/main.js index 8b9f29a1..24d97e77 100644 --- a/test/main.js +++ b/test/main.js @@ -30,6 +30,7 @@ var originalProgram = { eventFile: 'event.json', eventSourceFile: '', contextFile: 'context.json', + deployTimeout: 120000, prebuiltDirectory: '', };