Javascript 调用InitiateAuth操作时发生错误(InvalidLambdaResponseException):无法识别的lambda输出
我是aws开发新手,尝试使用aws cognito的自定义身份验证流、lambda触发器和aws python SDK实现无密码功能 我的问题是,在调用InitiateAuth后,我总是得到以下错误:Javascript 调用InitiateAuth操作时发生错误(InvalidLambdaResponseException):无法识别的lambda输出,javascript,python,amazon-web-services,aws-lambda,amazon-cognito,Javascript,Python,Amazon Web Services,Aws Lambda,Amazon Cognito,我是aws开发新手,尝试使用aws cognito的自定义身份验证流、lambda触发器和aws python SDK实现无密码功能 我的问题是,在调用InitiateAuth后,我总是得到以下错误: 调用InitiateAuth操作时发生错误(InvalidLambdaResponseException):无法识别的lambda输出 完全回溯是: 回溯(最近一次呼叫最后一次): 文件“test\u custom\u auth.py”,第52行,在 ClientId=客户机\u id 文件
调用InitiateAuth操作时发生错误(InvalidLambdaResponseException):无法识别的lambda输出
完全回溯是:
回溯(最近一次呼叫最后一次):
文件“test\u custom\u auth.py”,第52行,在
ClientId=客户机\u id
文件“/Users/jules/Repositories/snaaap/onemacapi/env/lib/python3.6/site packages/botocore/client.py”,第320行,在api调用中
返回self.\u make\u api\u调用(操作名称,kwargs)
文件“/Users/jules/Repositories/snaaap/onemac api/env/lib/python3.6/site packages/botocore/client.py”,第623行,在make\u api\u调用中
引发错误\u类(解析的\u响应、操作\u名称)
botocore.errorfactory.InvalidLambdaResponseException:调用InitiateAuth操作时发生错误(InvalidLambdaResponseException):无法识别的lambda输出
我可以通过cloudwatch日志看到defineAuthChallenge触发器和createAuthChallenge触发器调用成功,甚至可以打印日志来验证这一点
我首先使用Javascript编写lambda函数,然后使用Python,只是为了尝试另一种方法
我尝试在python中返回以下内容(我正在使用lambda编辑器控制台进行编辑)
返回事件
结果={ “isBase64Encoded”:False, “状态代码”:200, “标题”:{}, “body”:json.dumps(事件) } 返回结果
context.success(事件)
回调(空,事件)
context.done(事件)
context.done(JSON.stringify(事件))
启动请求ID:14441740-cc65-11e8-a632-9508cbba464c版本:$最新
结束请求ID:14441740-cc65-11e8-a632-9508cbba464c
报告请求ID:14441740-cc65-11e8-a632-9508cbba464c持续时间:6.70毫秒计费持续时间:100毫秒内存大小:128 MB最大使用内存:20 MB
以下是**createAuthChallenge**的日志:
启动请求ID:144995b6-cc65-11e8-8d2d-5388c84ccf95版本:$LATEST
结束请求ID:144995b6-cc65-11e8-8d2d-5388c84ccf95
报告请求ID:144995b6-cc65-11e8-8d2d-5388c84ccf95持续时间:592.59毫秒计费持续时间:600毫秒内存大小:128 MB最大使用内存:29 MB
将响应中的challengeMetaData
更改为challengeMetaData
,我将从createAuthChallenge函数返回。了解到当您在响应属性中放置无效键时,lambda将抛出InvalidLambdaResponseException
,尽管我希望下次cloudwatch可以启动见鬼
从@thomasmichaelwallace和本文中获得了一个想法。将响应中的
challengemtadata
更改为challengemtadata
,我将从我的createAuthChallenge函数返回。了解到当您在响应属性中放置无效键时,lambda将抛出InvalidLambdaResponseException
,不过我希望下次cloudwatch能捕捉到它
从@thomasmichaelwallace和这篇文章中得到了一个想法。问题最有可能出现在您对
CreateAuthChallenge
、DefineAuthChallenge
或VerifyAuthChallengeResponse
lambdas的响应中。您能提供一个日志,记录您从那些lambda函数返回的内容吗?嗨@thomasmichaelwallace,谢谢!我在编辑部分提供了cloudwatch的日志。由于我还没有提交质询答案,所以还没有来自VerifyAuthChallenge的任何日志。由于上面的错误,我无法提交。我无法将会话发回。抱歉-我不够清楚-我想看看您从那些lambdas返回的JSON,例如,我期望ingCreateAuthChallenge
返回类似以下内容:{response:{publicChallengeParameters:{},privateChallengeParameters:{something:'else'},challengeMetadata:'meta',}
.Hi@thomasmichaelwallace,解决了它!谢谢你的提示!我正要发布一篇编辑文章,但我重新扫描了所有内容,在这里看到一篇文章,说如果响应属性中的任何键出错,lambda将返回该错误。将challengemtata
更改为challengemtata
。成功了。谢谢!这个问题lem最有可能出现在您对CreateAuthChallenge
、DefineAuthChallenge
或VerifyAuthChallengeResponse
lambdas的响应中。您能提供一份您从这些lambda函数返回的日志吗?您好@thomasmichaelwallace,谢谢!我在编辑部分提供了cloudwatch的日志。我在这里因为我还没有提交质询答案,所以还没有收到任何来自VerifyAuthChallenge的质询答案。由于上述错误,我无法将会话发送回。抱歉-我不够清楚-我想查看您从那些lambda返回的JSON,例如,我希望CreateAuthChallenge
返回类似以下内容:{回复:{publicChallengeParameters:{},privateChallengeParameters:{something:'else'},challengeMetadata:'meta',}
。嗨@thomasmichaelwallace,解决了!谢谢你的提示!我是abo