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

Amazon web services 如何在基于aws的无服务器堆栈中处理用户数据,amazon-web-services,amazon-dynamodb,aws-lambda,amazon-cognito,Amazon Web Services,Amazon Dynamodb,Aws Lambda,Amazon Cognito,我是AWS的第一个新手,我有点迷路了。 我希望有一个无服务器堆栈,使用Cognito处理身份验证,使用DynamoDB、Lambda和CloudFront公开REST服务 我不知道如何处理用户数据。例如,我想存储用户的电子邮件和物理地址。我已经在Cognito中看到了这一点,但是,我希望在设置/更新这些属性时执行自定义验证 我可以用触发器轻松地做到这一点,让用户对其数据具有写访问权限吗 或者我应该限制对这些属性的写访问,并公开一个REST服务以在lambda中手动更新它们 我还看到有人在Dyna

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

我不知道如何处理用户数据。例如,我想存储用户的电子邮件和物理地址。我已经在Cognito中看到了这一点,但是,我希望在设置/更新这些属性时执行自定义验证

我可以用触发器轻松地做到这一点,让用户对其数据具有写访问权限吗

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

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


谢谢,

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

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

每次我试图使用Cognito作为用户数据的唯一来源时,我都遇到了这个问题。因此,我最终将用户数据存储在Dynamo或RDS中


如果你没有太多的流量,或者你不打算经常查询Cognito API,那么它可能对你有用

但是这样做,当用户更新其信息时,我如何检查数据,没有触发因素,是吗?不幸的是没有,AWS没有在注册完成后何时更新Cognito用户池属性的触发器。我总是在API网关和Lambda中构建一个REST服务来更新Cognito。