Как получить доступ к параметру из хранилища параметров 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 не обнаруживает такой функции.

Другие вопросы по тегам