lambda中的AWS Cognito用户池AdminCreateUser不返回错误或数据

问题描述 投票:0回答:1

我创建了一个AWS Lambda函数来测试新的Cognito用户池帐户创建,但未在用户池中创建任何帐户,并且控制台日志中未显示任何错误。我检查了AWS Cloud Watch,但在Cloud Watch中也未报告任何错误。

START RequestId: ..... Version: $LATEST
END RequestId: .....
REPORT RequestId: .....  Duration: 80.12 ms  Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 84 MB  

我将Lambda函数更改为更简单的函数; describeUserPool。仍然没有引发任何错误,并且没有在控制台中打印用户池信息。我在describeUserPool回调函数中添加了console.log打印,但是没有打印。

lambda函数是使用AWS Console Lambda嵌入式编辑器创建的。 Lambda函数已附加AmazonESCognitoAccess策略(此策略具有对Cognito用户池的列表/读取/写入访问级别)。

任何人都可以对我犯的错误有所了解吗?预先非常感谢。

var aws = require('aws-sdk');
aws.config.update({
    accessKeyId: 'access_key_id', 
    secretAccessKey: 'secret_access_key',
    region: 'us-east-1',
    apiVersion: '2016-04-18'
});
var cognito = new aws.CognitoIdentityServiceProvider();
var params = {
    UserPoolId: 'us-region-user-pool-id'
};

exports.handler = async (event) => {
    cognito.describeUserPool(params, function(err, data) {
        console.log('hello from inside function');
        if (err) {
            console.log(err);
        } else {
            console.log(data);
        }
     });
};

如果我在AdminCreateUser中包含不正确的参数,则会报告错误

var aws = require('aws-sdk');
    aws.config.update({
        accessKeyId: 'access_key_id', 
        secretAccessKey: 'secret_access_key',
        region: 'us-east-1',
        apiVersion: '2016-04-18'
    });


var cognito = new aws.CognitoIdentityServiceProvider();
var params = {
    UserPoolId: 'us-region-user-pool-id'
    Username: 'someone',
    TemporaryPassword: '11223344',
    DesiredDeliveryMediums: 'EMAIL',
    MessageAction: 'SUPPRESS',
    UserAttributes: [
    {
      Name: 'Email',
      Value: '[email protected]'
    },
    {
        Name: 'Family_Name',
        Value: 'One'
    },
    {
        Name: 'Given_Name',
        Value: 'Some'
    },
    {
        Name: 'Phone_Number_verified',
        Value: 'True'
    },
        {
        Name: 'Email_verified',
        Value: 'True'
    }

  ],
};

exports.handler = async (event) => {

    cognito.adminCreateUser(params, function(err, data) {
        console.log('hello from inside function');
        if (err) {
            console.log(err);
        } else {
            console.log(data);
        }
     });
};

我在Lambda嵌入式编辑器控制台中收到以下错误消息:

Response:
null

Request ID:
"6e50fdb4-e437-4b84-be7b-3caaeb5b0a98"

Function Logs:
    ncCredentials (/var/runtime/node_modules/aws-sdk/lib/config.js:391:24)
        at Config.getCredentials (/var/runtime/node_modules/aws-sdk/lib/config.js:411:9) {
      code: 'MultipleValidationErrors',
      errors: [
        InvalidParameterType: Expected params.DesiredDeliveryMediums to be an Array
            at ParamValidator.fail (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:50:37)
            at ParamValidator.validateType (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:232:10)
            at ParamValidator.validateList (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:99:14)
            at ParamValidator.validateMember (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:90:21)
            at ParamValidator.validateStructure (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:75:14)
            at ParamValidator.validateMember (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:88:21)
            at ParamValidator.validate (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:34:10)
            at Request.VALIDATE_PARAMETERS (/var/runtime/node_modules/aws-sdk/lib/event_listeners.js:126:42)
            at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:106:20)
            at callNextListener (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:96:12) {
          code: 'InvalidParameterType',
          time: 2020-05-31T21:59:35.116Z
        },
        InvalidParameterType: Expected params.UserAttributes[3].Value to be a string
            at ParamValidator.fail (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:50:37)
            at ParamValidator.validateType (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:232:10)
            at ParamValidator.validateString (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:154:32)
            at ParamValidator.validateScalar (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:130:21)
            at ParamValidator.validateMember (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:94:21)
            at ParamValidator.validateStructure (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:75:14)
            at ParamValidator.validateMember (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:88:21)
            at ParamValidator.validateList (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:103:14)
            at ParamValidator.validateMember (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:90:21)
            at ParamValidator.validateStructure (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:75:14) {
          code: 'InvalidParameterType',
          time: 2020-05-31T21:59:35.116Z
        },
        InvalidParameterType: Expected params.UserAttributes[4].Value to be a string
            at ParamValidator.fail (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:50:37)
            at ParamValidator.validateType (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:232:10)
            at ParamValidator.validateString (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:154:32)
            at ParamValidator.validateScalar (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:130:21)
            at ParamValidator.validateMember (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:94:21)
            at ParamValidator.validateStructure (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:75:14)
            at ParamValidator.validateMember (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:88:21)
            at ParamValidator.validateList (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:103:14)
            at ParamValidator.validateMember (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:90:21)
            at ParamValidator.validateStructure (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:75:14) {
          code: 'InvalidParameterType',
          time: 2020-05-31T21:59:35.116Z
        }
      ],
      time: 2020-05-31T21:59:35.173Z
    }
    END RequestId: 6e50fdb4-e437-4b84-be7b-3caaeb5b0a98
    REPORT RequestId: 6e50fdb4-e437-4b84-be7b-3caaeb5b0a98  Duration: 122.82 ms Billed Duration: 200 ms Memory Size: 128 MB Max Memory Used: 80 MB  Init Duration: 356.12 ms    
amazon-web-services aws-lambda amazon-cognito
1个回答
0
投票

发现此帖子cognito admin not giving error。 @thopaw的建议解决了我遇到的问题。

通过将其更改为promise(),它可以按预期工作。谢谢你们的时间。

如果有人遇到此问题,下面是更新的代码。

exports.handler = async (event, context) => {
    console.log('starts');
    var data;
    try {
        const data = await cognito.adminCreateUser(params).promise();
    } catch (error) {
        console.log(error);
    }
};
© www.soinside.com 2019 - 2024. All rights reserved.