我正在尝试调用adminInitiateAuth,如下所示:
var params = {
AuthFlow: 'ADMIN_NO_SRP_AUTH',
ClientId: 'xxxxxxxxx',
UserPoolId: 'eu-west-1_xxxxxx',
AuthParameters: {
email: email,
password: password
}
};
var cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider({apiVersion: '2016-04-18'});
cognitoidentityserviceprovider.adminInitiateAuth(params, function(err, data) {
if (err) {
console.log(err, err.stack);
} else {
console.log(data);
}
});
但是我收到以下错误:
TypeError:cognitoidentityserviceprovider.adminInitiateAuth不是函数
我在这里做错了什么想法?其他功能,如signUp以相同的方式调用时工作!
答案 0 :(得分:5)
我也一直在研究这个问题,看来为Lambda函数提供的NodeJS AWS sdk版本是2.4.9,您可以通过运行来检查:
console.log('SDK Version is ' + AWS.VERSION)
adminInitiateAuth发布的版本是2.4.11版。我认为亚马逊很快就会更新他们的lambda机器,但在此期间你可以尝试通过手动添加新的sdk
npm install aws-sdk
答案 1 :(得分:0)
如上所述,Lambda容器中的当前SDK版本早于此API。解决方案是将您需要的SDK版本捆绑到Lambda zip文件中。
对于可靠性很重要的应用程序,您应该在任何情况下明确地捆绑所有依赖项。这会将您的函数与Lambda更新容器中的API时引入的行为更改或错误隔离开来。