【问题标题】:How do you call adminInitiateAuth from NodeJS Lambda?你如何从 NodeJS Lambda 调用 adminInitiateAuth?
【发布时间】:2016-12-05 19:38:41
【问题描述】:

我正在尝试按如下方式调用 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)时也可以正常工作!

【问题讨论】:

    标签: amazon-web-services aws-sdk aws-lambda


    【解决方案1】:

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

    console.log('SDK Version is ' + AWS.VERSION)
    

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

    npm install aws-sdk
    

    然后是zipping up your lambda file with the node_modules folder

    【讨论】:

    【解决方案2】:

    如上所述,Lambda 容器中的当前 SDK 版本早于该 API。解决方案是将您需要的 SDK 版本捆绑到您的 Lambda zip 文件中。

    对于可靠性很重要的应用程序,您应该在任何情况下明确捆绑所有依赖项。这将您的函数与每当 Lambda 更新容器中的 API 时引入的行为更改或错误隔离开来。

    【讨论】:

      猜你喜欢
      • 2020-09-15
      • 1970-01-01
      • 1970-01-01
      • 2017-07-13
      • 1970-01-01
      • 2020-03-04
      • 1970-01-01
      • 2023-01-12
      • 2022-06-21
      相关资源
      最近更新 更多