你如何从NodeJS Lambda调用adminInitiateAuth?

Ros*_*ssP 5 amazon-web-services aws-sdk aws-lambda

我试着调用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);
        }
    });
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

TypeError:cognitoidentityserviceprovider.adminInitiateAuth不是函数

我在这里做错了什么想法?其他功能,如signUp以相同的方式调用!

smu*_*uff 5

我一直在研究这个问题,看来为Lambda函数提供的NodeJS AWS sdk是版本2.4.9,你可以通过运行来检查:

console.log('SDK Version is ' + AWS.VERSION)
Run Code Online (Sandbox Code Playgroud)

adminInitiateAuth发布的版本是2.4.11版.我认为亚马逊很快就会更新他们的lambda机器,但与此同时你可以尝试手动添加新的sdk

npm install aws-sdk
Run Code Online (Sandbox Code Playgroud)

然后使用node_modules文件夹压缩lambda文件.