我正在尝试访问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不是函数”
亚马逊是否在不更改文档的情况下更改了此内容?此功能是否转移到另一种类型的对象?
答案 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"