如何在 CloudWatch 订阅中分配特定的 Kinesis 碎片
How to assign specific Kinesis Shard in CloudWatch Subscription
如果您计划向特定 Kinesis 流订阅超过单个分片可以处理的更多 CloudWatch 日志数据,是否可以通过添加多个分片来扩展您的流,然后在这些分片之间分发多个 CloudWatch 日志订阅?
文档 here 掩盖了分片处理,仅引用 "shardId-000000000000"。
API docs(至少对于 .NET SDK 而言)建议在创建订阅时指定目标 arn,但我的理解是 arn 不能比 Kinesis Stream 更具体, 但我不认为单个分片被分配了 arns。
本质上,如果您计划订阅的 CloudWatch 数据超过单个分片可以处理的数量,是否有办法将您的流 "scale up" 转换为多分片流(同时使用 CloudWatch 订阅并避免写入自定义客户端来处理数据),还是严格来说有必要 "scale out" 进入多个单分片流?
我从我的组织的 AWS 代表那里收到了这个答复:
CloudWatch 订阅在内部根据以下所有参数为每条消息创建一个 PartitionKey:ownerId、logGroupName、和 logStreamName.
基于文档中未提及的内容,我假设分片分区键几乎被 CloudWatch 订阅系统忽略了,但实际上您似乎自动获得了一个相当不错的机制来将您的消息分发到您的流的碎片。
如果您计划向特定 Kinesis 流订阅超过单个分片可以处理的更多 CloudWatch 日志数据,是否可以通过添加多个分片来扩展您的流,然后在这些分片之间分发多个 CloudWatch 日志订阅?
文档 here 掩盖了分片处理,仅引用 "shardId-000000000000"。
API docs(至少对于 .NET SDK 而言)建议在创建订阅时指定目标 arn,但我的理解是 arn 不能比 Kinesis Stream 更具体, 但我不认为单个分片被分配了 arns。
本质上,如果您计划订阅的 CloudWatch 数据超过单个分片可以处理的数量,是否有办法将您的流 "scale up" 转换为多分片流(同时使用 CloudWatch 订阅并避免写入自定义客户端来处理数据),还是严格来说有必要 "scale out" 进入多个单分片流?
我从我的组织的 AWS 代表那里收到了这个答复:
CloudWatch 订阅在内部根据以下所有参数为每条消息创建一个 PartitionKey:ownerId、logGroupName、和 logStreamName.
基于文档中未提及的内容,我假设分片分区键几乎被 CloudWatch 订阅系统忽略了,但实际上您似乎自动获得了一个相当不错的机制来将您的消息分发到您的流的碎片。