lambda函数中的AWS参数存储访问

时间:2017-07-14 17:48:18

标签: amazon-web-services amazon-ec2 lambda

我正在尝试访问AWS lambda函数中的参数存储。这是我的代码,依据此处的文档:http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SSM.html

var ssm = new AWS.SSM({apiVersion: '2014-11-06'});
var ssm_params1 = {
    Name: 'XXXX', /* required */
    WithDecryption: true
};

ssm.getParameter(ssm_params1, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     clientId = data.value;
});

执行后,我收到错误:

“TypeError:ssm.getParameter不是函数”

亚马逊是否在不更改文档的情况下更改了此内容?此功能是否转移到另一种类型的对象?

4 个答案:

答案 0 :(得分:3)

请检查并尝试最新版本的SDK。亚马逊并没有抛弃getParameter方法而只支持getParameters。事实是方法是getParameter,与getParametersByPath一起,是新添加的方法。旧版本的SDK无法解析这些方法。

答案 1 :(得分:2)

这里的答案是亚马逊必须抛弃getParameter()方法,而只支持维护一个方法getParameter(s)()。但他们没有更新文档。这种方法似乎工作正常。

答案 2 :(得分:1)

我已经尝试了getParameter和getParameters函数,并且它们都正常工作。

你可能有错误,因为你正在通过" apiVersion:' 2014-11-06'"到SSM构造函数。

不要将任何apiVersion参数传递给该函数。它应该工作正常。

答案 3 :(得分:0)

在某些环境中,AWS中似乎有一个错误,其中不包括正确的sdk版本。可以通过记录所用的sdk版本来确认。

console.log("AWS-SDK Version: " + require('aws-sdk/package.json').version);

包括必需的aws-sdk软件包为我们解决了这个问题。

尝试在package.json中添加以下内容:

    "aws-sdk": "^2.339.0"