Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.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
Python 如何不允许在DynamoDB上删除特定项目?_Python_Amazon Web Services_Amazon Dynamodb - Fatal编程技术网

Python 如何不允许在DynamoDB上删除特定项目?

Python 如何不允许在DynamoDB上删除特定项目?,python,amazon-web-services,amazon-dynamodb,Python,Amazon Web Services,Amazon Dynamodb,在我们的DynamoDB数据库中,我们有一个表,在这个表中,由于test_数据,我们通常有数千个垃圾项,我们会清理一下。 但是有一个特定的项目我们不想删除,但是当我们选择全部时,该项目也会被删除 在表中是否有一种方法可以定义ID并阻止它被删除?或者,如果有人来删除所有内容,它将删除除该内容之外的所有内容?我可以想出两种选择: 向可能执行此操作的任何人(或任何角色)添加拒绝删除该项的权限的策略。您可以使用dynamodb:LeadingKeys条件键来完成此操作 将流处理程序添加到表中,任何时候删

在我们的DynamoDB数据库中,我们有一个表,在这个表中,由于test_数据,我们通常有数千个垃圾项,我们会清理一下。 但是有一个特定的项目我们不想删除,但是当我们选择全部时,该项目也会被删除


在表中是否有一种方法可以定义ID并阻止它被删除?或者,如果有人来删除所有内容,它将删除除该内容之外的所有内容?

我可以想出两种选择:

  • 向可能执行此操作的任何人(或任何角色)添加拒绝删除该项的权限的策略。您可以使用
    dynamodb:LeadingKeys
    条件键来完成此操作
  • 将流处理程序添加到表中,任何时候删除记录都可以自动将其添加回表中
  • 第一个选项可能是最好的,但您需要确保它始终连接到适当的用户/角色。您还需要确保您正在处理在尝试删除不允许删除的记录时将出现的错误


    第二个选项消除了对它的担忧,但它带来了每次创建、更新或删除表中记录时运行Lambda的开销(使用一些批处理,所以不是每次更改)。它还打开了一个记录将被删除的短暂时期,因此,如果记录永远不被删除很重要,那么这不是一个可行的选择。

    我可以想到两个选项:

  • 向可能执行此操作的任何人(或任何角色)添加拒绝删除该项的权限的策略。您可以使用
    dynamodb:LeadingKeys
    条件键来完成此操作
  • 将流处理程序添加到表中,任何时候删除记录都可以自动将其添加回表中
  • 第一个选项可能是最好的,但您需要确保它始终连接到适当的用户/角色。您还需要确保您正在处理在尝试删除不允许删除的记录时将出现的错误


    第二个选项消除了对它的担忧,但它带来了每次创建、更新或删除表中记录时运行Lambda的开销(使用一些批处理,所以不是每次更改)。它还开启了一个删除记录的短暂时期,因此,如果记录永远不被删除很重要,那么这不是一个可行的选择。

    我建议重新思考整个过程,这样你就不必这么做。我建议重新思考整个过程,这样你就不必这么做。