AWS services or capabilities described in AWS Documentation may vary by region/location. Click Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.
A shard iterator specifies the position in the shard from which to start reading data records sequentially. A shard iterator specifies this position using the sequence number of a data record in a shard. A sequence number is the identifier associated with every record ingested in the Amazon Kinesis stream. The sequence number is assigned when a record is put into the stream.
You must specify the shard iterator type. For example, you can set the ShardIteratorType
parameter to read exactly from the position denoted by a specific sequence number
by using the AT_SEQUENCE_NUMBER
shard iterator type, or right after the
sequence number by using the AFTER_SEQUENCE_NUMBER
shard iterator type,
using sequence numbers returned by earlier calls to PutRecord, PutRecords,
GetRecords, or DescribeStream. You can specify the shard iterator type
TRIM_HORIZON
in the request to cause ShardIterator
to point
to the last untrimmed record in the shard in the system, which is the oldest data
record in the shard. Or you can point to just after the most recent record in the
shard, by using the shard iterator type LATEST
, so that you always read
the most recent data in the shard.
When you repeatedly read from an Amazon Kinesis stream use a GetShardIterator
request to get the first shard iterator for use in your first GetRecords request
and then use the shard iterator returned by the GetRecords request in NextShardIterator
for subsequent reads. A new shard iterator is returned by every GetRecords
request in NextShardIterator
, which you use in the ShardIterator
parameter of the next GetRecords request.
If a GetShardIterator request is made too often, you receive a ProvisionedThroughputExceededException
.
For more information about throughput limits, see GetRecords.
If the shard is closed, the iterator can't return more data, and GetShardIterator
returns null
for its ShardIterator
. A shard can be closed
using SplitShard or MergeShards.
GetShardIterator has a limit of 5 transactions per second per account per open shard.
Namespace: Amazon.Kinesis
Assembly: AWSSDK.dll
Version: (assembly version)
public abstract GetShardIteratorResponse GetShardIterator( GetShardIteratorRequest request )
Container for the necessary parameters to execute the GetShardIterator service method.
Exception | Condition |
---|---|
InvalidArgumentException | A specified parameter exceeds its restrictions, is not supported, or can't be used. For more information, see the returned message. |
ProvisionedThroughputExceededException | The request rate is too high, or the requested data is too large for the available throughput. Reduce the frequency or size of your requests. For more information, see Error Retries and Exponential Backoff in AWS in the AWS General Reference. |
ResourceNotFoundException | The requested resource could not be found. The stream might not be specified correctly, or it might not be in the ACTIVE state if the operation requires it. |
.NET Framework:
Supported in: 4.5, 4.0, 3.5