Я пытался получить последние изменения в DynamoDB через потоки DynamodB с AWS-SDK для nodeJS.Я думал о его реализации, используя ShardIteratorType в качестве "ПОСЛЕДНЕГО".Каждый раз, когда я вызываю getRecords () с помощью Iterator, который я получил getShardIterator (), он возвращает пустые записи, тогда как изменение ShardIteratorType на «TRIM_HORIZON» возвращает объекты в этом шарде.
Я не могучтобы понять это поведение.Если кто-нибудь может помочь мне разобраться, это будет оценено.
Вот псевдокод для реализации.
let getShardIterator = async (shardID) => {
let params = {
ShardId: shardID,
ShardIteratorType: "LATEST", //using TRIM_HORIZON is working fine
StreamArn: streamInfo.StreamArn
};
return new Promise((resolve, reject) => {
dynamoStreams.getShardIterator(params, function (err, data) {
if (err) reject(err) // an error occurred
else resolve(data);
});
})
}
let getDataFromIterator = async (params) => {
return new Promise((resolve, reject) => {
dynamoStreams.getRecords(params, function (err, data) {
if (err) reject(err, err.stack);
else resolve(data);
});
})
}
let shardIterObj = await getShardIterator(ShardId);
let data = await getDataFromIterator(shardIterObj);
Спасибо.