aws开发的新手,正在尝试使用aws cognito的“自定义身份验证流程”,lambda触发器和aws python SDK来实现无密码功能。
我的问题是在调用InitiateAuth之后,总是出现以下错误:An error occurred (InvalidLambdaResponseException) when calling the InitiateAuth operation: Unrecognizable lambda output
完整的回溯是:Traceback (most recent call last): File "test_custom_auth.py", line 52, in <module> ClientId=client_id File "/Users/jules/Repositories/snaaap/onemac-api/env/lib/python3.6/site-packages/botocore/client.py", line 320, in _api_call return self._make_api_call(operation_name, kwargs) File "/Users/jules/Repositories/snaaap/onemac-api/env/lib/python3.6/site-packages/botocore/client.py", line 623, in _make_api_call raise error_class(parsed_response, operation_name)botocore.errorfactory.InvalidLambdaResponseException: An error occurred (InvalidLambdaResponseException) when calling the InitiateAuth operation: Unrecognizable lambda output
我通过cloudwatch日志可以看到defineAuthChallenge触发器和createAuthChallenge触发器调用成功,甚至可以打印出日志来验证这一点。
我首先使用Javascript然后使用Python进行了lambda函数,只是尝试了另一种方法。
我试图在python中返回以下内容(我正在使用lambda编辑器控制台进行编辑)return event
result = { "isBase64Encoded": False, "statusCode": 200, "headers": {}, "body": json.dumps(event) }return result
我试图用javascript返回以下内容(我正在使用lambda编辑器控制台进行编辑)context.succeed(event)
callback(null, event)
context.done(event)
context.done(JSON.stringify(event))
和上面提到的那些排列,但我仍然不断收到错误:(感谢任何可以提供帮助的人!
编辑
执行了另一个请求:
以下是defineAuthChallenge的日志:START RequestId: 14441740-cc65-11e8-a632-9508cbba464c Version: $LATESTEND RequestId: 14441740-cc65-11e8-a632-9508cbba464cREPORT RequestId: 14441740-cc65-11e8-a632-9508cbba464c Duration: 6.70 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 20 MB
以下是来自** createAuthChallenge **的日志:START RequestId: 144995b6-cc65-11e8-8d2d-5388c84ccf95 Version: $LATESTEND RequestId: 144995b6-cc65-11e8-8d2d-5388c84ccf95REPORT RequestId: 144995b6-cc65-11e8-8d2d-5388c84ccf95 Duration: 592.59 ms Billed Duration: 600 ms Memory Size: 128 MB Max Memory Used: 29 MB
最佳答案
在我从createAuthChallenge函数返回的响应中,将challengeMetaData
更改为challengeMetadata
。了解到,当您在响应属性中放置无效密钥时,lambda会抛出InvalidLambdaResponseException
,尽管我希望下次cloudwatch可以捕获它。
从@thomasmichaelwallace获得了一个想法,这篇文章https://forums.aws.amazon.com/thread.jspa?threadID=237677。
关于javascript - 调用InitiateAuth操作时发生错误(InvalidLambdaResponseException):无法识别的lambda输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52735509/