Kinesis / Client / update_shard_count
update_shard_count#
- Kinesis.Client.update_shard_count(**kwargs)#
- Updates the shard count of the specified stream to the specified number of shards. This API is only supported for the data streams with the provisioned capacity mode. - Note - When invoking this API, it is recommended you use the - StreamARNinput parameter rather than the- StreamNameinput parameter.- Updating the shard count is an asynchronous operation. Upon receiving the request, Kinesis Data Streams returns immediately and sets the status of the stream to - UPDATING. After the update is complete, Kinesis Data Streams sets the status of the stream back to- ACTIVE. Depending on the size of the stream, the scaling action could take a few minutes to complete. You can continue to read and write data to your stream while its status is- UPDATING.- To update the shard count, Kinesis Data Streams performs splits or merges on individual shards. This can cause short-lived shards to be created, in addition to the final shards. These short-lived shards count towards your total shard limit for your account in the Region. - When using this operation, we recommend that you specify a target shard count that is a multiple of 25% (25%, 50%, 75%, 100%). You can specify any target value within your shard limit. However, if you specify a target that isn’t a multiple of 25%, the scaling action might take longer to complete. - This operation has the following default limits. By default, you cannot do the following: - Scale more than ten times per rolling 24-hour period per stream 
- Scale up to more than double your current shard count for a stream 
- Scale down below half your current shard count for a stream 
- Scale up to more than 10000 shards in a stream 
- Scale a stream with more than 10000 shards down unless the result is less than 10000 shards 
- Scale up to more than the shard limit for your account 
 - For the default limits for an Amazon Web Services account, see Streams Limits in the Amazon Kinesis Data Streams Developer Guide . To request an increase in the call rate limit, the shard limit for this API, or your overall shard limit, use the limits form. - See also: AWS API Documentation - Request Syntax - response = client.update_shard_count( StreamName='string', TargetShardCount=123, ScalingType='UNIFORM_SCALING', StreamARN='string' ) - Parameters:
- StreamName (string) – The name of the stream. 
- TargetShardCount (integer) – - [REQUIRED] - The new number of shards. This value has the following default limits. By default, you cannot do the following: - Set this value to more than double your current shard count for a stream. 
- Set this value below half your current shard count for a stream. 
- Set this value to more than 10000 shards in a stream (the default limit for shard count per stream is 10000 per account per region), unless you request a limit increase. 
- Scale a stream with more than 10000 shards down unless you set this value to less than 10000 shards. 
 
- ScalingType (string) – - [REQUIRED] - The scaling type. Uniform scaling creates shards of equal size. 
- StreamARN (string) – The ARN of the stream. 
 
- Return type:
- dict 
- Returns:
- Response Syntax - { 'StreamName': 'string', 'CurrentShardCount': 123, 'TargetShardCount': 123, 'StreamARN': 'string' } - Response Structure - (dict) – - StreamName (string) – - The name of the stream. 
- CurrentShardCount (integer) – - The current number of shards. 
- TargetShardCount (integer) – - The updated number of shards. 
- StreamARN (string) – - The ARN of the stream. 
 
 
 - Exceptions - Kinesis.Client.exceptions.InvalidArgumentException
- Kinesis.Client.exceptions.LimitExceededException
- Kinesis.Client.exceptions.ResourceInUseException
- Kinesis.Client.exceptions.ResourceNotFoundException
- Kinesis.Client.exceptions.ValidationException
- Kinesis.Client.exceptions.AccessDeniedException