我正在使用AWS Cognito进行用户注册。注册确认后,我有一个lambda触发器,将新用户添加到我的RDS实例。
我的问题如下 如何确保lambda成功将用户添加到数据库。我担心的是,如果lambda失败,我希望服务仍然有用。
现在,我的解决方案是使用我的确认后lambda将新用户添加到SQS。
然后有由SQS触发的lambda。这样即使用户添加失败,我仍然有以后添加的信息/看到问题。
这是一个很好的解决方案。任何帮助将不胜感激。谢谢!
您可以考虑使用Cognito作为用户注册机制,而不是使用Cognito user pools的用户数据库本身。
另一方面,如果要确保if lambda失败,则不会错过用户数据,使用户注册工作流同步,避免来自cognito事件的触发器。相反,您可以调用lambda函数作为前端消耗的API后面的后端。
对于这个用例,您可以认为API gateway是一个很好的选择,最后,无服务器框架是用于此目的的最有价值的工具。
顺便说一句,您的SQS解决方案对于管理异步用户注册过程并不错。
以下链接可能非常有用:
希望这可以帮助
我不确定你的意思是“我担心的是,如果lambda失败,我希望服务仍然有效。”我假设通过代码,您可以处理lambda执行中的任何可能的错误,然后以自定义方式记录它或者只是让它去,并将记录在cloudwatch中。无论哪种情况,您都可以配置警报并在出现问题时接收电子邮件。这是非常灵活和可配置的,但似乎你不需要做太复杂的事情。