diff --git a/lib/providers/aws.js b/lib/providers/aws.js index 35de9ec..44c46ac 100644 --- a/lib/providers/aws.js +++ b/lib/providers/aws.js @@ -12,16 +12,30 @@ module.exports = function (options) { function getSecret (parameterNames) { const names = Array.isArray(parameterNames) ? parameterNames : [parameterNames] - const params = { - Names: names, - WithDecryption: true - } + + return new Promise((resolve) => { + let secretPromises = []; + + for (let index = 0; index < names.length; index += 10) { + const params = { + Names: names.slice(index, index + 10), + WithDecryption: true + } + + secretPromises.push(ssm.getParameters(params).promise()); + } - return ssm.getParameters(params).promise().then(data => { - return data.Parameters.reduce((obj, x) => { - obj[x.Name] = x.Value - return obj - }, {}) + let secrets = {}; + + Promise.all(secretPromises).then(results => { + for (const result of results) { + for (const parameter of result.Parameters) { + secrets[parameter.Name] = parameter.Value + } + } + + resolve(secrets) + }) }) }