尽快使用 boto3 设置 Dynamodb 表复制

Set Dynamodb tables replication with boto3 as soon as possible

我正在创建 dynamodb tables 与 boto3/python 使用 client.create_table() 方法,一个异步操作。但是,在 table 处于“活动”状态“之后”之前,您无法创建全局 table(复制)。我们希望尽快进行复制,但是,我们需要尽快 return 给用户,不能等待 table 准备就绪和 运行 create_global_table() 在他们身上。

我的第一个想法是创建一个引用新 table 的 SQS 消息,然后可以由 lambda 处理该消息以监视所述 table 的状态,直到状态为 ACTIVE,然后才调用复制 table,然后才删除消息。

我想我还可以创建一个每分钟 运行s 的 lambda 并扫描没有启用全局 tables 的 tables 然后 运行 create_global_table() 在他们身上。这似乎很有效,这些 table 并不经常创建。

有谁能想到更好的方法吗?

如果客户端不需要等到 table 创建,只需设置一个 SQS 队列,后面有 Lambda 函数。

当客户端请求创建新的 table 时,您会向队列发送一条消息,并使用类似于 HTTP 202 状态代码的内容来响应客户端。

然后您可以编写 Lambda 函数以创建 table 的方式侦听队列,等待它变为活动状态,然后创建全局 table.


另一个选项是创建 table 的阶跃函数,然后循环直到它变为活动状态,然后创建全局 table。那么你就没有 long 运行 lambdas 了。您可以从接受请求的初始 lambda 触发步骤函数。