【发布时间】:2016-05-10 22:34:05
【问题描述】:
我的应用程序读取 dynamoDB 流以查找对表的更改,我目前正在获取最新的流,如下所示:
this.awsDB.describeTable({TableName: 'MatchDraft'}, function(err, data){
if(err){
console.log(err);
} else {
this.streamArn = data.Table.LatestStreamArn;
console.log(data, this.streamArn);
_readStream.apply(this);
}
}.bind(this));
我遇到的问题是LatestStreamArn 表不会自行更新并且每24 小时过期一次,此时我的程序开始工作。我总是只使用“最新”的分片迭代器类型,所以我不想保留所有更改的 24 小时记录,我只想能够使用分片迭代器来有效地检测表的更改并将它们显示为它们发生。
如何让我的应用程序自动根据需要以最有效的方式创建一个新的 LatestStreamArn?该代码是用户网络浏览器中的所有客户端,因此我不想打开 UpdateTable API 的权限,据我所知这是更新流的唯一方法。
【问题讨论】:
-
你为什么不使用 AWS Lambda?
-
@EyalCh 我猜是因为除了这个似乎应该是微不足道的问题之外,我不需要它。 lambda 具体会有多大帮助?看起来事情现在的样子我只需要一个每 24 小时调用一次更新表的 chron 作业,并且没有其他解决方案。 lambda 会有更简洁的方法来解决这个问题吗?你会用它具体做什么?
-
@Eyal Ch 如果 lambda 有帮助,我肯定很想知道如何。即使允许 UpdateTable 调用,我的流似乎只是在一定时间后不再处于活动状态。我可以让我的应用程序恢复工作的唯一方法是通过 updateTable 禁用流并重新启用它:/
标签: amazon-dynamodb amazon-kinesis