1

我正在尝试使用以下代码从 Parameter Store 中提取参数值:

 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"

每当我部署此 lambda 并执行调用 lambda 的测试时,我都会收到以下异常:

TypeError: ssm.getParametersByPath is not a function at exports.handler 

查看 API 文档,我写的方法看起来(对我来说)是正确的,但我继续得到这个异常。

关于如何将参数值从存储中拉出并在 lambda 中使用的任何建议?

4

2 回答 2

2

您使用的服务不正确。有AWS Secrets ManagerAWS System Manager Parameter Store

您正在为前者创建客户端,但为后者使用 API。尝试使用SSM客户端,我认为这就是你要找的。

于 2019-02-19T20:06:15.267 回答
2

看起来您使用了错误的 API。

getParametersByPath可以在SSM类中找到。

浏览SecretsManager的文档并没有发现这样的功能。

于 2019-02-19T20:07:15.590 回答