Как получить доступ к параметру из хранилища параметров aws, используя функцию в лямбда-выражении
Я пытаюсь получить значение параметра из хранилища параметров, используя следующий код:
let ssm = new AWS.SecretsManager();
emailParam = { Path: '/myPath/Service/DestinationEmail'};
destinationEmail = ssm.getParametersByPath(emailParam, function(err, data){
if(err){
console.log(err, err.stack);
} else {
return data;
}
});
}else {
destinationEmail = dev.destinationEmail;
}
Я проверил версию SDK, который работает, и консоль вышла из системы версии 2.339.0, поэтому я добавил это как явную ссылку в зависимости package.json "aws-sdk": "^2.339.0"
Всякий раз, когда я развертываю эту лямбду и выполняю тест для запуска лямбды, я получаю следующее исключение:
TypeError: ssm.getParametersByPath is not a function at exports.handler
Глядя на документацию по API, метод, который я написал, выглядит (для меня) правильным, но я продолжаю получать это исключение.
Любые предложения о том, как извлечь значение параметра из магазина и использовать его в лямбда-выражении?
2 ответа
Вы используете неправильный сервис. Есть AWS Secrets Manager и хранилище параметров AWS System Manager.
Вы создаете клиент для первого, но используете API для второго. Попробуйте использовать SSM
клиент, я думаю, это то, что вы ищете.
Похоже, вы используете неправильный API.
getParametersByPath
можно найти в классе SSM.
Просмотр документации для SecretsManager не обнаруживает такой функции.