📅  最后修改于: 2023-12-03 15:07:42.075000             🧑  作者: Mango
我正在使用 TypeScript 和 AWS SDK for JavaScript v3 编写一个 Kinesis Livestreaming 应用程序。我已经创建了一个流式传输请求流,并使用 putRecord API 将数据记录放入流中。
然而,当我尝试从流中获取数据时,我却无法找到之前放入的数据片段。无论我尝试使用哪种方法访问数据,都返回一个空的响应。
经过仔细分析,我发现问题可能出在数据记录的分片 key 上。如果分片 key 不正确或缺失,则会导致数据记录无法正确放置在流中。
另外,我也需要确认我的 Kinesis 数据流已经处于活动状态,并已经与正确的 AWS 记录器绑定。如果记录器和数据流没有正确绑定,则会导致无法正确访问数据。
考虑到分片 key 可能存在问题,我需要确保我的代码正确设置了分片 key。我可以使用 putRecord API 的 PartitionKey 参数来设置分片键值。例如:
const putRecordParams = {
Data: 'my data',
PartitionKey: 'my-partition-key',
StreamName: 'my-stream-name'
};
await kinesisClient.send(new PutRecordCommand(putRecordParams));
如果分片 key 已经被正确设置,但是仍然无法找到数据片段,那么我需要确保我的 Kinesis 数据流处于活动状态,并已经正确绑定到 AWS 记录器。
此外,我需要确保我的请求访问数据的权限是正确的。如果我的 AWS 访问密钥或 IAM 角色没有足够的权限访问数据,则会导致无法正确访问数据。
在 Kinesis Livestreaming 中找不到数据记录片段的问题可能由多种原因引起,包括分片键值的问题、缺乏正确的权限、数据流处于非活动状态或未正确绑定到 AWS 记录器等。使用正确的分片键值、确保数据流处于活动状态并已正确绑定到 AWS 记录器,以及授权正确的请求访问数据将有助于解决这些问题。