Lambda AWS PreSignUp 响应的正确格式是啥
Posted
技术标签:
【中文标题】Lambda AWS PreSignUp 响应的正确格式是啥【英文标题】:Which is the correct format for Lambda AWS PreSignUp ResponseLambda AWS PreSignUp 响应的正确格式是什么 【发布时间】:2021-11-28 00:52:15 【问题描述】:我正在开发一个 VUE+Amplify 项目,它几乎完成了,但是 cognito 不提供邮件重复检查,所以我必须手动进行,因为我们知道 AWS 有一些触发器,我正在使用 PreSignUp 调用Lambda函数,我的代码是:
var AWS = require("aws-sdk");
const cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider();
exports.handler = function(event, context, callback)
var params =
UserPoolId: "us-east-1_xxxXXXxXX",
AttributesToGet: ["email"]
;
cognitoidentityserviceprovider.listUsers(params, (err, data) =>
if (err)
console.log(err, err.stack);
callback(err) // here is the error return
else
data.Users.forEach(function(usuario)
if(usuario.Attributes[0].Value == event.request.userAttributes.email)
return ;
);
callback(event);
);
但我不明白我做错了什么,lambda执行返回......
Object code: "UserLambdaValidationException", name: "UserLambdaValidationException", message: "PreSignUp failed with error [object Object]."
有什么想法吗?
【问题讨论】:
【参考方案1】:需要返回事件对象
https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-pre-sign-up.html
【讨论】:
谢谢,这正是我一直在做的,我刚刚添加了callback (full, event);
,但它不起作用,但是有没有办法取消注册事件并发送自定义消息?如果我发送一个空对象callback (full, );
Cognito 返回 code: "InvalidLambdaResponseException", name: "InvalidLambdaResponseException", message: "Invalid version. Version should be 1" App.vue:204
你不能只返回事件吗?以上是关于Lambda AWS PreSignUp 响应的正确格式是啥的主要内容,如果未能解决你的问题,请参考以下文章
由于错误 AccessDeniedException(Lambda 别名作为 Cognito 触发器),AWS Cognito 用户池引发 PreSignUp 调用失败
python 适当的AWS lambda函数,它形成lambda代理的响应
AWS lambda 函数-“发生错误:收到来自 Lambda 的错误响应:已处理”
AWS Java Lambda 压缩 JSON 响应失败:“由于配置错误,执行失败:格式错误的 Lambda 代理响应”