Cognito post验证lambda调用导致失败

时间:2017-05-19 15:14:50

标签: aws-lambda amazon-cognito

我有一个lambda函数,当cognito用户提交验证码时会调用它。

PostConfirmation failed with error RequestId: 3241xxxx-3cxx-11xx-aexx-8b39059xxxxx Process exited before completing request.
    at constructor.e (<anonymous>:21:4685)
    at constructor.callListeners (<anonymous>:21:24558)
    at constructor.emit (<anonymous>:21:24267)
    at constructor.emitEvent (<anonymous>:21:18671)
    at constructor.a (<anonymous>:21:14521)
    at d.runTo (<anonymous>:22:12444)
    at <anonymous>:22:12651
    at constructor.<anonymous> (<anonymous>:21:14731)
    at constructor.<anonymous> (<anonymous>:21:18726)
    at constructor.callListeners (<anonymous>:21:24664)

我的lambda函数的工作是接收该提交并向SQS发布消息,然后继续。

module.exports.trigger_userVerified = (event, context, callback) => {
  const AWS = require('aws-sdk');

  var nickname = event.request.userAttributes.nickname;

  var params = {
    MessageBody: 'A user has registered an account and has supplied a website address.',
    QueueUrl: ' https://sqs.us-east-1.amazonaws.com/xxx/my_sqs_queue',
    DelaySeconds: 0,
    MessageAttributes: {
      'nickname': {
        DataType: 'String',
        StringValue: nickname
      }
    }
  };
  sqs.sendMessage(params, function(err, data) {
    if (err) console.log(err, err.stack); // an error occurred
    context.done(null, event);
  });

};

我正在处理导致此错误的lambda函数的方式是否有问题?我该如何进一步调查?

1 个答案:

答案 0 :(得分:0)

错误“在完成请求之前退出进程”意味着在调用context.done(或context.succeed等)之前退出lambda Javascript函数。大多数情况下,这意味着函数中存在错误。

我不是Javascript专家(根本没有)所以可能有更优雅的方法来查找错误,但我的方法是在我的代码中放入一堆console.log消息,运行它,然后查看日志。我通常可以对违规行进行归零,如果我看得太久,我通常可以弄清楚我的错误。

因为它是lambda: 请检查您的cloudwatch日志,看看您是否能找到更多。在你的位置我也会添加一些console.log语句。

相关问题