diff --git a/src/commands/update.js b/src/commands/update.js index fc6723b..fa09586 100644 --- a/src/commands/update.js +++ b/src/commands/update.js @@ -145,7 +145,11 @@ module.exports = function update(options, optionalLogger) { }, () => logger.logStage('waiting for IAM role propagation'), Promise - ); + ).then(result => { + logger.logStage('waiting for lambda resource allocation'); + return waitUntilNotPending(lambda, lambdaConfig.name, awsDelay, awsRetries) + .then(() => result); + }); } }, cleanup = function () { diff --git a/src/tasks/wait-until-not-pending.js b/src/tasks/wait-until-not-pending.js index 2790751..0f20bfd 100644 --- a/src/tasks/wait-until-not-pending.js +++ b/src/tasks/wait-until-not-pending.js @@ -1,6 +1,8 @@ const retry = require('oh-no-i-insist'); -module.exports = function waitUntilNotPending(lambda, functionName, timeout, retries) { +module.exports = async function waitUntilNotPending(lambda, functionName, timeout, retries) { 'use strict'; + await new Promise(resolve => setTimeout(resolve, timeout)); + return retry( () => { return lambda.getFunctionConfiguration({FunctionName: functionName}).promise() @@ -20,5 +22,3 @@ module.exports = function waitUntilNotPending(lambda, functionName, timeout, ret Promise ); }; - -