有没有办法以编程方式获取 Amazon Kinesis 流的最大授权分片数?

Is there a way to programmatically get the maximum authorized number of shards for an Amazon Kinesis stream?

默认情况下,一个 Kinesis 流被授权最多有 10 个分片,但可以增加此限制。是否可以通过编程方式检索流的限制?我无法在官方 AWS Java SDK 中找到执行此操作的方法。

不,似乎没有 API 要求这样做。在任何情况下,您都必须联系 AWS 支持并获得增加限制的批准,这意味着该值不太可能经常更改。

如果你真的需要动态访问这个限制数字,你可以考虑将它存储在某个地方的数据库中。或者,您可能会监听并响应当您尝试扩展到超过允许限制时产生的异常。

请注意,如果您出于扩展目的对此感到疑惑:只有打开的分片才计入此限制 - 因此您可以从 5 个扩展到 10 个分片,并且在扩展期间,原来的 5 个将关闭成为父分片,这意味着在这些父分片过期之前的 24 小时内,您的帐户中有 15 个分片。这很好用。