Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何用Cognito构造AWS DynamoDB表_Amazon Web Services_Aws Lambda_Amazon Dynamodb_Relational Database_Amazon Cognito - Fatal编程技术网

Amazon web services 如何用Cognito构造AWS DynamoDB表

Amazon web services 如何用Cognito构造AWS DynamoDB表,amazon-web-services,aws-lambda,amazon-dynamodb,relational-database,amazon-cognito,Amazon Web Services,Aws Lambda,Amazon Dynamodb,Relational Database,Amazon Cognito,我试图做一些对于关系数据库来说相对简单的事情,但对于非关系数据库我不知道如何做 我试图在AWS上制作一个简单的任务web应用程序,人们可以在其中发布他们的任务 我有一个名为tasks的表,它使用awscognito提供的auth令牌中的userid。我想知道如何才能返回用户信息。我不想依赖Cognito,每次用户发送请求时简单地调用它。因此,我的想法是创建另一个表来存储所有用户信息。然而,这并不是一种非常不相关的方式,因为连接非常糟糕 所以,我想知道我是否应该做以下任何一项 a使用RDS代替 b

我试图做一些对于关系数据库来说相对简单的事情,但对于非关系数据库我不知道如何做

我试图在AWS上制作一个简单的任务web应用程序,人们可以在其中发布他们的任务

我有一个名为tasks的表,它使用awscognito提供的auth令牌中的userid。我想知道如何才能返回用户信息。我不想依赖Cognito,每次用户发送请求时简单地调用它。因此,我的想法是创建另一个表来存储所有用户信息。然而,这并不是一种非常不相关的方式,因为连接非常糟糕

所以,我想知道我是否应该做以下任何一项 a使用RDS代替 b不要使用Cognito并设置我自己的身份验证系统 c只是使用一个包含所有用户信息的表进行连接
d每次都向Cognito发出请求

对于DynamoDB,不需要另一个表。如果访问模式要求您将信息存储在另一个对象中,那么也可以,但很可能它应该在同一个表中。听起来您需要在同一个表中使用两种不同的项目类型

对于userid的任务PK和task::your-task-id的SK。这将允许您轻松获取用户的所有任务,或者如果您知道任务id,甚至可以非常轻松地获取特定任务。您甚至可以使用一个时间戳属性,然后使用一个GSI,该GSI是userid作为PK,时间戳作为SK。然后,您可以在SK上使用begins_with运算符,并对2019-04月份用户的所有任务进行分页

对于用户信息,用户ID是PK,SK是用户信息,属性是用户信息


这方面的一个挑战是,如果你走极端,一个用户每秒执行数千次操作。e、 g.所有由非常受欢迎的名人发布的推文。如果您有这样一个用例,也有一些解决方法,例如。这些只是供您使用的示例。如果不了解您所有的访问模式,我就无法对您可能想做的所有事情进行建模。我强烈建议你去看。

虽然我个人喜欢cognito的想法,但目前它有一些主要缺点

如果不丢失用户池的密码,则无法备份/还原用户池,而且必须实现自己的备份/还原。 一种解决方法是将用户密码保存在cognito自定义属性中


我希望通过使用api网关/lambda authorizer,所有用户数据都在lambda上下文中,但它不在那里。或者我发现api网关模板映射有问题,感谢您的回复!我是一名试图学习如何构建可伸缩系统的学生。我知道我不太可能构建高需求的东西,但我仍然想学习“正确的方法”。你建议我尝试创建自己的JWT auth系统吗?我现在所做的是使用Cognito,并有希望取代它。但是,接口应该保持不变。此外,我后来转向了RDS,因为我觉得如果关系模型改变了什么,我会在非关系数据库上强加一个关系模型。