如何将 AWS Cognito 用户与 DynamoDB 同步

Dan*_*aut 5 amazon-web-services amazon-dynamodb amazon-cognito

我有一个架构设计,其中使用 Cognito 进行用户管理(电子邮件、电话号码是唯一的属性),然后使用 DynamoDB 来同步用户,以便我可以让 AppSync 的用户查询和获取一些用户信息。

我需要某种方法将 DynamoDB 用户与 Cognito 用户同步。目前,我有一个用户 postConfirmation lambda 触发器,用于在新用户确认上述所有信息时运行插入 DynamoDB 的操作,但是:

  • 我如何管理用户更新他们的电子邮件/电话:如果我直接使用 Cognito,然后他们必须确认他们的新电话号码/电子邮件,似乎没有另一个 Lambda 触发器,我可以在此处添加来同步此新数据使用 DynamoDB。
  • 如果我通过 Appsync 使用 DynamoDB 更新用户电子邮件和电话,然后通过 DynamoDB 流将其踢出到 lambda 函数以更新 Cognito 中的此信息,则用户尚未确认这些详细信息,因此该信息可能无效。

保持 Cognito 和 DynamoDB 同步的理想架构是什么?

cyb*_*bat 0

我会考虑不将这些详细信息与 DynamoDb 同步。您可以像查询数据库一样查询 Cognito 来查找/获取用户。我们这样做的方法是使用 DynamoDb userId 的 Cognito sub(id),以便轻松从 DynamoDb 获取特定用户的数据。数据库表更像是一个补充信息表,就像您用来保存额外的用户数据一样。在我看来,这会容易得多 - 然后你不需要处理与电子邮件更改相关的任何事情。

例如 - 我们有一个用于帐户/用户的管理应用程序同步。为了查找或以其他方式改变用户,我们通常使用调用Cognito方法的 Lambda 。