Python 如何使用boto3删除dynamodb中的所有项目
下面是我的代码,用于从表名Python 如何使用boto3删除dynamodb中的所有项目,python,amazon-web-services,aws-lambda,boto3,Python,Amazon Web Services,Aws Lambda,Boto3,下面是我的代码,用于从表名详细信息 下面的代码将根据正常工作的dynamodb的容量删除一些项目 如何删除所有项目 我使用编写,而使用标志条件循环 import boto3 def lambda_handler(event, context): try: flag = False table_name = 'details' dynamodb = boto3.resource('dynamo
详细信息
- 下面的代码将根据正常工作的dynamodb的
容量
删除一些项目
- 如何删除所有项目
我使用编写,而使用标志条件循环
import boto3
def lambda_handler(event, context):
try:
flag = False
table_name = 'details'
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table(table_name)
scan = table.scan()
while True:
with table.batch_writer() as batch:
for each in scan['Items']:
if each is not None:
batch.delete_item(
Key={
'id': each['id']
}
)
else:
Flag = True
except Exception as e:
print (e)
对于DynamoDB,如果要删除所有项目,最好的方法是删除并重新创建表,因为使用bot3,每页的元素限制为1000个
boto3的问题是成本太高。。。每次删除都是写请求。如果您不想支付不必要的费用(这是最好的方式),请删除并重新创建:)
顺便说一下
import boto3
def lambda_handler(event, context):
try:
flag = False
table_name = 'details'
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table(table_name)
scan = table.scan()
while !flag:
with table.batch_writer() as batch:
for each in scan['Items']:
batch.delete_item(
Key={
'id': each['id']
}
)
flag = True
except Exception as e:
print (e)
问题是什么?在第二个代码示例中,在哪里打破while循环?我还希望您也需要提交批处理,但我不知道这个界面。如果您的工作流程允许,您最好删除表并重新创建它,尤其是较大的表。@balderman如何删除dynamo db表中的所有项目,请检查第二个代码。第二个问题是什么code@E.J.Brennan我没有权限,你能检查第二个代码吗?这里面有什么问题吗?你能检查我的第二个代码并帮我找出代码中的错误吗?我没有权力删除我们的表格,却永远不会停止。。。while True:-->while flag:您需要确定标志何时为false。。。当你完成foreach,但我坚持如果你需要删除所有项目,请删除并重新创建。。。你付了不必要的钱。。。或者创建一个地形模板来创建和删除,这是最好的标准我编辑了我的答案我认为可以解决你的问题。。。但请阅读我的其他评论
import boto3
def lambda_handler(event, context):
try:
flag = False
table_name = 'details'
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table(table_name)
scan = table.scan()
while !flag:
with table.batch_writer() as batch:
for each in scan['Items']:
batch.delete_item(
Key={
'id': each['id']
}
)
flag = True
except Exception as e:
print (e)