我是AWS的第一个计时器,我有点迷失了。 我希望有一个无服务器堆栈使用Cognito来处理身份验证,DynamoDB,Lambda和CloudFront用于公开REST服务。
我不确切知道如何处理用户数据。例如,我想存储用户电子邮件和物理地址。我已经看到你可以直接在Cognito中使用它,但是,我想在设置/更新这些属性时执行自定义验证。
我可以使用触发器轻松完成此操作,让用户对其数据具有写入权限吗?
或者我应该限制对这些属性的写访问权限并公开REST服务以在lambda中手动更新它们?
我还看到有人在DynamoDB中使用用户表来存储一些数据,与直接使用身份池相比有什么优势?
谢谢,
答案 0 :(得分:0)
您可以在Cognito用户池中轻松存储此类数据(电子邮件,地址),并使用PreSignUp Lambda触发器more details验证数据。
答案 1 :(得分:0)
使用DynamoDB存储用户数据的优势在于,您几乎肯定会使用Cognito作为主数据存储来达到RequestLimitExceeded异常。如果您联系AWS支持并解释您正在做什么,他们将提高您帐户的Cognito API限制 - 但这只能暂时解决问题。由于亚马逊没有发布会触发RequestLimitExceeded错误的内容,因此如果您的流量增加,您最终会再次发布错误。
每当我尝试使用Cognito作为用户数据的唯一来源时,我就遇到了这个问题。所以我最终将用户数据存储在Dynamo或RDS中。
如果您没有大量流量,或者您不经常查询Cognito API,那么它可能适合您