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没有出现任何错误,但我无法弄清楚为什么仍然会收到这个错误。

1 Antwort
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
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen