DynamoDB Streams:如何指定从消费者开始读取数据的时间戳?



我有一个应用程序(Lambda &(一个微服务)从DynamoDB流中读取。

是否可以定义应用程序开始读取数据的时间戳?

定义时间戳不是DynamoDb流的数据访问模式。

根据文档,唯一可用的数据访问模式是使用分片标识符。

可能有一种方法可以使用减半间隔(也称为平分)方法来查找分片记录和它们的近似值。

重读这个问题后,我相信你想要的是一个'发电机中的开始位置',lambda将从那里开始读取数据。

答案是否定的,因为这不是流的工作方式。dynamo流不是发送给lambda的I/O数据流,而是收集成单个JSON事件的批处理事件,当满足其条件(事件数量或经过的时间)时发送给lambda。您有一些选项,如TRIM_HORIZON等,可以让您控制发送的事件以及"开始"的位置,但这不是"在流中间开始"的操作。这些是在生成时发送的单个json事件。

这真的取决于你的用例,但我猜你想要能够添加一堆项目到发电机,而不是让那些触发Lambda,然后在某个点有项目开始触发Lambda。

如果是这种情况,您有两个选项:

  1. 为不想处理的项添加属性。让lambda检查流中的事件是否有该属性,如果找到,则忽略该事件。

或者2)使用您的SDK为您的语言打开和关闭流。

选项1远没有那么复杂。这可能是更好的选择。

最新更新