如何在基于aws的无服务器堆栈中处理用户数据

时间:2016-09-22 14:55:52

标签: amazon-web-services amazon-dynamodb aws-lambda amazon-cognito

我是AWS的第一个计时器,我有点迷失了。 我希望有一个无服务器堆栈使用Cognito来处理身份验证,DynamoDB,Lambda和CloudFront用于公开REST服务。

我不确切知道如何处理用户数据。例如,我想存储用户电子邮件和物理地址。我已经看到你可以直接在Cognito中使用它,但是,我想在设置/更新这些属性时执行自定义验证。

我可以使用触发器轻松完成此操作,让用户对其数据具有写入权限吗?

或者我应该限制对这些属性的写访问权限并公开REST服务以在lambda中手动更新它们?

我还看到有人在DynamoDB中使用用户表来存储一些数据,与直接使用身份池相比有什么优势?

谢谢,

2 个答案:

答案 0 :(得分:0)

您可以在Cognito用户池中轻松存储此类数据(电子邮件,地址),并使用PreSignUp Lambda触发器more details验证数据。

答案 1 :(得分:0)

使用DynamoDB存储用户数据的优势在于,您几乎肯定会使用Cognito作为主数据存储来达到RequestLimitExceeded异常。如果您联系AWS支持并解释您正在做什么,他们将提高您帐户的Cognito API限制 - 但这只能暂时解决问题。由于亚马逊没有发布会触发RequestLimitExceeded错误的内容,因此如果您的流量增加,您最终会再次发布错误。

每当我尝试使用Cognito作为用户数据的唯一来源时,我就遇到了这个问题。所以我最终将用户数据存储在Dynamo或RDS中。

如果您没有大量流量,或者您不经常查询Cognito API,那么它可能适合您