我需要删除一个dynamodb表,并等待它完全删除。我怎么检查这个?
boto3 api公开了一个方法get_waiter
来等待某些事件,但它没有很好地记录。我可以将它用于此目的吗?哪个是事件名称,或者可能处理ResourceNotFoundException
# Wait until the table exists.
table.meta.client.get_waiter('table_exists').wait(TableName='TableName')
答案 0 :(得分:9)
在delete_table
API之后,请致电table_not_exists
服务员。这将一直等到指定的表返回404。
import boto3
client = boto3.client('dynamodb')
client.delete_table(TableName='foo')
waiter = client.get_waiter('table_not_exists')
waiter.wait(TableName='foo')
print ("table deleted")
对于create_table
API,请致电table_exists
服务员。这将一直等到指定的表激活。
答案 1 :(得分:2)
没有waiter,我们现在可以使用wait_until_not_exists 函数,如下例所示
table = dynamoResources.Table(table_name)
table.delete()
table.wait_until_not_exists()