5

实际上,我想对 AWS DynamoDB 表项目实施验证,如果项目字段的规则中断,这应该会阻止记录插入/更新。

可能吗?

或者我们可以为 dynamoDB 表创建一个触发器 lambda,该触发器在插入/更新之前触发。这样我们就可以检查验证规则并进行处理。

4

2 回答 2

7

DynamoDB 不支持数据库端项目验证。它仅验证当您添加一个项目时,它应该具有您的键(分区键、排序键等)的属性并且它们具有正确的类型。除此之外,DynamoDB 不验证任何内容。

此外,由于 DynamoDB 是无模式的,并且不会对您的属性施加限制,因此它不会检查您的项目具有哪些属性(键是唯一的例外)。

唯一的选择是在将项目保存到 DynamoDB 之前在服务器端验证它们。

更新

我们可以为 dynamoDB 表创建触发器 lambda

DynamoDB 不支持在将项目添加到数据库之前执行的 Lambda 触发器。目前唯一支持的触发器是 DynamoDB 流,但它是将项目存储到表中之后调用的,并且是异步调用的,这意味着在添加项目和执行触发器之间有一个小的延迟。

于 2017-07-27T11:12:14.413 回答
0

在触发实际将数据插入/更新到 dynamoDB 的 lambda 表达式之前,最好使用 API Gateway 验证您的模型。

我已经实现了一个示例,可在 github 上公开:https ://github.com/adrianosastre/DynamoDB-CDK-Hands-On

该项目在文章中有更详细的解释:https ://dev.to/adrianosastre/aws-serverless-and-the-dynamodb-single-table-design-hands-on-with-cdk-v2-38d0

于 2022-01-02T20:48:48.613 回答