PreSignUp触发器的InvalidLambdaResponseException异常。

0

【以下的问题经过翻译处理】 我一直收到以下错误信息,无论我使用boto3的sign_up还是JS的signUp函数:

InvalidLambdaResponseException: 在调用SignUp操作时发生错误(InvalidLambdaResponseException):Unrecognizable lambda output

我的触发lambda是用Python实现的,我自动确认和验证用户,如下所示:

event['response']['autoConfirmUser'] = True
event['response']['autoVerifyEmail'] = True

然后使用return eventevent返回。

尽管这个lambda没有出现任何错误,但我无法弄清楚为什么仍然会收到这个错误。

profile picture
专家
已提问 1 年前72 查看次数
1 回答
0

【以下的回答经过翻译处理】 发现了错误。我们在一个分离的函数中使用了event["request"]的值作为内部逻辑的一部分,而这会修改这些值(由于字典是可变的,所以我们忘记了它们是通过引用传递的)。解决方法是在传递给函数之前进行深拷贝(使用copy.deepcopy(event["request"]))。

主要代码如下:

from copy import deepcopy

def function_handler(event, context): # 创建事件请求的深拷贝 request = deepcopy(event['request']) # 在自定义函数中做一些事情,对于我们来说它返回一个布尔值 response = do_something(request) if not response: # 由于我们的函数没有按预期工作,我们无法创建用户,引发异常 raise Exception('do_something失败,这里是一个有意义的错误消息...')

# 由于do_something起作用了,让我们确认用户
event['response']['autoConfirmUser'] = True
event['response']['autoVerifyEmail'] = True

return event

这个解决方法起作用了。回想一下,错误信息“无Unrecognizable lambda output”并不是真正有用的,如果它对被修改的`request`有更多信息,那么找到问题的时间将会更少。
profile picture
专家
已回答 1 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则