Cognito 发布确认被多次触发

Kev*_*ski 6 amazon-cognito aws-lambda

在reddit上看到这个问题,并相信在遇到同样的问题后应该将其转移到堆栈溢出(https://www.reddit.com/r/aws/comments/bzvhu3/cognito_post_confirmation_being_triggered/

由于某种原因,尽管我的认知用户池注册"triggerSource""PostConfirmation_ConfirmSignUp"两次,但如日志中所示,它运行了两次CloudWatch。第二次失败是因为用户已经在数据库中了,请问是什么问题?

小智 10

“Amazon Cognito 同步调用 Lambda 函数。调用时,您的 Lambda 函数必须在 5 秒内响应。如果没有响应,Amazon Cognito 将重试调用。尝试 3 次失败后,该函数将超时。此 5 秒超时值无法更改”

来源: https: //docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html#important-lambda-considerations


Kev*_*ski 7

问题是你的超时设置超过了5秒,如果等待6秒,到5秒标记时它会再次触发,就像失败一样。

有趣的注意:我不得不将超时设置为 10 秒,因为我的 stripe api 由于某种原因需要一段时间,而当我设置为 4 秒时,它经常会失败。在达到 10 秒超时后,它不再失败......但它仍然平均执行时间为 2 秒,因此它永远不会运行两次。不知道为什么会这样,但了解一下是件好事。

第二个注意事项:我无法找到有关 5 秒超时重试的文档,但我确实注意到它是正确的。如果有人知道此文档的位置,请添加它。