【发布时间】:2018-09-19 13:50:25
【问题描述】:
我在 Python 中创建了一个 Lambda 函数,用于将用户从 RDS 迁移到 AWS Cognito。我面临的问题是我的函数的返回类型,以便 Cognito 创建用户。起初我返回的是 JSON:
return {
"response": {
"userAttributes": {
"email": event["userName"],
},
"finalUserStatus": "CONFIRMED",
"messageAction": "SUPPRESS",
"desiredDeliveryMediums": "EMAIL",
"forceAliasCreation": "false"
}
}
我还尝试关注他们提出的关于通过 Lambda 迁移用户的唯一 code Sample(第 109 页):
exports.handler = function (event, context) {
if (event.triggerSource == "UserMigration_Authentication") {
// authenticate the user with your existing user directory service
var user = authenticateUser(event.userName, event.request.password);
if (user) {
event.response.userAttributes = {
"email": user.emailAddress,
"email_verified": "true"
};
event.response.finalUserStatus = "CONFIRMED";
event.response.messageAction = "SUPPRESS";
context.succeed(event);
} else {
context.fail("Bad password");
}
} else if (event.triggerSource == "UserMigration_ForgotPassword") {
// Lookup the user in your existing user directory service
var user = lookupUser(event.userName);
if (user) {
event.response.userAttributes = {
"email": user.emailAddress,
// required to enable password-reset code to be sent to user
"email_verified": "true"
};
event.response.messageAction = "SUPPRESS";
context.succeed(event);
} else {
context.fail("Bad password");
}
} else {
context.fail("Bad triggerSource " + event.triggerSource);
}
};
在这个例子中,我假设我应该在添加新值后返回“事件”对象,下面是我的 Python 代码:
event["response"] = {
"userAttributes": {
"email": event["userName"],
"email_verified": "true"
},
"finalUserStatus": "CONFIRMED",
"messageAction": "SUPPRESS",
"desiredDeliveryMediums": "EMAIL",
"forceAliasCreation": "false"
}
return event
但这也不起作用并引发了同样的异常。在 Cognito 中创建新用户的正确返回类型是什么?
【问题讨论】:
-
遇到一模一样的问题,不知道去哪里查日志,很郁闷。
-
我刚刚添加了一个答案 - 结果证明我的事件对象格式不正确。
-
我的问题只是打错字...
标签: python-2.7 aws-lambda amazon-cognito