Amazon dynamodb 如何为dynamodb记录操作(获取、更新、删除)生成审核日志?

Amazon dynamodb 如何为dynamodb记录操作(获取、更新、删除)生成审核日志?,amazon-dynamodb,aws-serverless,Amazon Dynamodb,Aws Serverless,我正在进行无服务器后端开发,我使用了aws dynamodb作为数据库,现在我想为记录的所有操作(获取、更新、删除)生成审计日志,并将其存储在单独的表中。aws是否有任何内置功能?或者如何实施 谢谢您可以在DynamoDB表上启用DynamoDB流来实现这一目的 从amazon文档中: DynamoDB流是一个有序的关于对 DynamoDB表中的项目。在表上启用流时, DynamoDB捕获关于数据项的每次修改的信息 在桌子上 每当应用程序在中创建、更新或删除项时 表中,DynamoDB Stre

我正在进行无服务器后端开发,我使用了aws dynamodb作为数据库,现在我想为记录的所有操作(获取、更新、删除)生成审计日志,并将其存储在单独的表中。aws是否有任何内置功能?或者如何实施


谢谢

您可以在DynamoDB表上启用DynamoDB流来实现这一目的

从amazon文档中:

DynamoDB流是一个有序的关于对 DynamoDB表中的项目。在表上启用流时, DynamoDB捕获关于数据项的每次修改的信息 在桌子上

每当应用程序在中创建、更新或删除项时 表中,DynamoDB Streams使用主键写入流记录 已修改项目的属性。流记录包含 有关对DynamoDB中单个项进行数据修改的信息 桌子您可以配置流,以便流记录捕获 附加信息,例如的“之前”和“之后”图像 修改的项目

DynamoDB Streams有助于确保以下各项:

每个流记录在流中只出现一次

对于在DynamoDB表中修改的每个项,流记录 以与项目实际修改相同的顺序出现

DynamoDB Streams以近乎实时的方式写入流记录,以便 可以构建使用这些流并采取行动的应用程序 根据内容

有关更多信息和示例,请查看以下参考资料

我了解您的答案,也了解流,但对于审核日志条目,我需要触发操作的用户信息。如何在dynamodb流中获得它?任何想法。。感谢这将取决于更多信息,dynamodb上的操作(插入、更新、删除)是如何触发的?是否通过lambda或apigateway等触发。根据工作流程,密钥和用户信息需要单独存储。另外,请记住,通常使用角色和用户使用不同的组件,这些角色和用户可能不会唯一标识一个人。操作将从Lambda触发,我们使用cognito作为用户目录。因此,我们只需要将用户ID(负责操作触发器的人)存储在日志条目中。如果是这样,为什么不从lambda发出一个sns/sqs/cloudwatch事件,其中包含用户信息和相应的分区和排序键,然后使用该事件将其与从dynamodb流发出的数据连接起来呢?是的,sqs事件可以创建日志条目,但这是完全可编程的自定义解决方案,需要为每个操作和每个表管理它,实际上我正在寻找数据库级别的中央解决方案。