调用InitiateAuth操作时发生错误(InvalidLambdaResponseException):无法识别的lambda输出

时间:2018-10-10 08:09:52

标签: javascript python amazon-web-services aws-lambda amazon-cognito

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: $LATEST END RequestId: 14441740-cc65-11e8-a632-9508cbba464c REPORT 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: $LATEST END RequestId: 144995b6-cc65-11e8-8d2d-5388c84ccf95 REPORT RequestId: 144995b6-cc65-11e8-8d2d-5388c84ccf95 Duration: 592.59 ms Billed Duration: 600 ms Memory Size: 128 MB Max Memory Used: 29 MB

1 个答案:

答案 0 :(得分:0)

在我从 createAuthChallenge 函数返回的响应中,将challengeMetaData更改为challengeMetadata。了解到,当您在响应属性中放置无效密钥时,lambda会抛出InvalidLambdaResponseException,尽管我希望下次cloudwatch可以捕获它。

从@thomasmichaelwallace和本文https://forums.aws.amazon.com/thread.jspa?threadID=237677中得到了一个想法。