当前位置: 首页 > 知识库问答 >
问题:

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

郑理
2023-03-14

我创建了一个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回调函数中进行日志打印,但未打印。

lambda函数是使用AWS控制台lambda内联编辑器创建的。Lambda函数附加了AmazonSCognitoAccess策略(此策略具有对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: 'someone@example.com'
    },
    {
        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    

共有1个答案

魏冷勋
2023-03-14

发现这篇文章认知管理员不给错误。@thopaw的建议解决了我的问题。

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

如果有人遇到这个,下面是更新的代码。

exports.handler = async (event, context) => {
    console.log('starts');
    var data;
    try {
        const data = await cognito.adminCreateUser(params).promise();
    } catch (error) {
        console.log(error);
    }
};
 类似资料:
  • 问题内容: 我正在尝试将.csv文件中的大量数据转储到SQL Server 2012数据库中。我没有进行数千次INSERT的工作,而是在进行调查。 编辑: 这是一个自动化的过程,而不是一次性的。我也没有此数据库的权限。 当我尝试将数据复制到数据库中时,不会返回任何错误,但实际上也不会复制任何内容-它只会返回。我已将其缩减为无法正常工作的最小情况。 首先,创建一个包含两列的简单表: 然后,使用来从中

  • 我在Grafana中有一个图形,使用Prometheus数据源显示API中的错误率。这可以很好地处理此查询: 我从我的API中获得非200响应代码的速率,然后将这些速率相加,因为我有3个运行API的实例。然后,我将这些分组为(用户请求的实际路径)和,后者是返回的确切的HTTP状态代码。 虽然这是一个有点有用的原始数字,但没有那么大的帮助。每秒100个请求中有100个错误是非常糟糕的,1000000

  • 我试图插入一个记录到DynamoDB调用"预注册"触发器的Cognito用户池。 Lambda函数对于测试来说非常简单,但在AWSCognito上的客户端应用程序中总是存在错误。CognitoIdentityServiceProvider。CognitoUserPool。注册电话 用例1 Lambda主体: 结果: 用例2 Lambda主体: 结果: 用例3 Lambda主体: 结果: 那么,有什

  • 将异常获取为 :lambda表达式中的返回类型错误:

  • 以下代码在IntelliJ和Eclipse中编译得很好,但JDK编译器1.8.0\u 25对此表示不满。首先,代码。 javac 1.8.0\u 25的输出为: 当我更换时?超级E只需使用E,JDK就能成功编译。 当我将替换为,JDK编译成功。 由于它适用于JDK 1.8.0_60,我怀疑它是编译器错误。 有没有详细说明是什么原因造成的以及何时修复的?

  • 我正在尝试使用以下cmdlet测试Powershell中是否存在DNS区域: 这很好,但我现在需要做的是根据是否有错误或是否有数据返回,将它转换为真/假评估。 例如,这是一个真实的场景: 而这是一个错误的场景: 我正在纠结的是如何对此进行评估?通俗地说,我需要检查是否有实际数据。 非常感谢!