【问题标题】:any way to be notified of a table or index status change in dynamodb?有什么方法可以通知 dynamodb 中的表或索引状态更改?
【发布时间】:2018-06-20 14:38:36
【问题描述】:

我正在尝试使用适用于 Java 的 AWS 开发工具包的 UpdateTable API 将几个全局二级索引添加到现有表中。我已经浏览了文档,因此我将每个 CreateGlobalSecondaryIndexAction 包装到 GlobalSecondaryIndexUpdate 中,然后将其放入 UpdateTableRequest。

我遇到的问题是这些表更新需要一段时间来处理。一旦其中一个启动,表就会进入 UPDATING 状态,并且表不能再次更新,直到其状态为 ACTIVE。文档说它们是异步请求,并且有一个 AmazonDynamoDBAsyncClient 可用于进行更新,甚至为您提供了带有 AsyncHandlers 的方法,您可以传入以响应事件。但问题是,当 UpdateTableResult 准备好时,这些 asyncHandler 会收到通知。但是,这并不意味着该表处于活动状态并准备好进行另一次更新。因此,您必须对表进行轮询以检查其状态何时恢复为 ACTIVE。

除此之外,如果您要更新二级索引,它们也会进入更新状态。因此该表可以处于 ACTIVE 状态,但如果它有一个状态为 UPDATING 的二级索引,则您也无法更新该表上的任何其他索引。因此,您最终必须轮询表状态和表上索引的状态,以确保它们都处于活动状态,然后再进行另一次更新。

是否有任何事件机制可以通知表和/或索引的状态更新以避免这种轮询?

【问题讨论】:

  • 据我所知,没有推送模型来获取表的更新以进行索引更新。支持使用DynamoDB Streams 收听项目更新,但不支持表更新。

标签: amazon-dynamodb


【解决方案1】:

目前还没有任何事件机制。如果您通过控制台创建索引,您可以收到电子邮件通知,但这可能对您要查找的内容没有多大帮助。

不过,感谢您的反馈,我会确保团队知道对此功能的兴趣。如果您还想查看其他功能,请随时联系我们的forums

【讨论】:

  • 5 年后,还是一样。再加上无法对一个索引进行更改(即需要删除和添加另一个),以及无法同时添加和删除索引以及添加多个索引,这是一个巨大的问题,没有办法获取事件通知。维护更新可能很容易,但不,对 DDB 索引更改做出的每一个决定都使其成为 PITA。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-09
  • 2016-05-16
  • 1970-01-01
  • 2021-01-06
  • 1970-01-01
  • 2018-12-21
  • 1970-01-01
相关资源
最近更新 更多