Table of Contents

Class AmazonDynamoDBStreamsClient

Namespace
Amazon.DynamoDBv2
Assembly
AWSSDK.DynamoDBv2.dll

Implementation for accessing DynamoDBStreams

Amazon DynamoDB

Amazon DynamoDB Streams provides API actions for accessing streams and processing stream records. To learn more about application development with Streams, see Capturing Table Activity with DynamoDB Streams in the Amazon DynamoDB Developer Guide.

public class AmazonDynamoDBStreamsClient : AmazonServiceClient, IAmazonDynamoDBStreams, IAmazonService, IDisposable
Inheritance
AmazonDynamoDBStreamsClient
Implements
IAmazonService

Constructors

AmazonDynamoDBStreamsClient()

Constructs AmazonDynamoDBStreamsClient with the credentials loaded from the application's default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance.

Example App.config with credentials set.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
        <add key="AWSProfileName" value="AWS Default"/>
    </appSettings>
</configuration>
public AmazonDynamoDBStreamsClient()

AmazonDynamoDBStreamsClient(AmazonDynamoDBStreamsConfig)

Constructs AmazonDynamoDBStreamsClient with the credentials loaded from the application's default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance.

Example App.config with credentials set.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
        <add key="AWSProfileName" value="AWS Default"/>
    </appSettings>
</configuration>
public AmazonDynamoDBStreamsClient(AmazonDynamoDBStreamsConfig config)

Parameters

config AmazonDynamoDBStreamsConfig

The AmazonDynamoDBStreamsClient Configuration Object

AmazonDynamoDBStreamsClient(RegionEndpoint)

Constructs AmazonDynamoDBStreamsClient with the credentials loaded from the application's default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance.

Example App.config with credentials set.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
        <add key="AWSProfileName" value="AWS Default"/>
    </appSettings>
</configuration>
public AmazonDynamoDBStreamsClient(RegionEndpoint region)

Parameters

region RegionEndpoint

The region to connect.

AmazonDynamoDBStreamsClient(AWSCredentials)

Constructs AmazonDynamoDBStreamsClient with AWS Credentials

public AmazonDynamoDBStreamsClient(AWSCredentials credentials)

Parameters

credentials AWSCredentials

AWS Credentials

AmazonDynamoDBStreamsClient(AWSCredentials, AmazonDynamoDBStreamsConfig)

Constructs AmazonDynamoDBStreamsClient with AWS Credentials and an AmazonDynamoDBStreamsClient Configuration object.

public AmazonDynamoDBStreamsClient(AWSCredentials credentials, AmazonDynamoDBStreamsConfig clientConfig)

Parameters

credentials AWSCredentials

AWS Credentials

clientConfig AmazonDynamoDBStreamsConfig

The AmazonDynamoDBStreamsClient Configuration Object

AmazonDynamoDBStreamsClient(AWSCredentials, RegionEndpoint)

Constructs AmazonDynamoDBStreamsClient with AWS Credentials

public AmazonDynamoDBStreamsClient(AWSCredentials credentials, RegionEndpoint region)

Parameters

credentials AWSCredentials

AWS Credentials

region RegionEndpoint

The region to connect.

AmazonDynamoDBStreamsClient(string, string)

Constructs AmazonDynamoDBStreamsClient with AWS Access Key ID and AWS Secret Key

public AmazonDynamoDBStreamsClient(string awsAccessKeyId, string awsSecretAccessKey)

Parameters

awsAccessKeyId string

AWS Access Key ID

awsSecretAccessKey string

AWS Secret Access Key

AmazonDynamoDBStreamsClient(string, string, AmazonDynamoDBStreamsConfig)

Constructs AmazonDynamoDBStreamsClient with AWS Access Key ID, AWS Secret Key and an AmazonDynamoDBStreamsClient Configuration object.

public AmazonDynamoDBStreamsClient(string awsAccessKeyId, string awsSecretAccessKey, AmazonDynamoDBStreamsConfig clientConfig)

Parameters

awsAccessKeyId string

AWS Access Key ID

awsSecretAccessKey string

AWS Secret Access Key

clientConfig AmazonDynamoDBStreamsConfig

The AmazonDynamoDBStreamsClient Configuration Object

AmazonDynamoDBStreamsClient(string, string, RegionEndpoint)

Constructs AmazonDynamoDBStreamsClient with AWS Access Key ID and AWS Secret Key

public AmazonDynamoDBStreamsClient(string awsAccessKeyId, string awsSecretAccessKey, RegionEndpoint region)

Parameters

awsAccessKeyId string

AWS Access Key ID

awsSecretAccessKey string

AWS Secret Access Key

region RegionEndpoint

The region to connect.

AmazonDynamoDBStreamsClient(string, string, string)

Constructs AmazonDynamoDBStreamsClient with AWS Access Key ID and AWS Secret Key

public AmazonDynamoDBStreamsClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken)

Parameters

awsAccessKeyId string

AWS Access Key ID

awsSecretAccessKey string

AWS Secret Access Key

awsSessionToken string

AWS Session Token

AmazonDynamoDBStreamsClient(string, string, string, AmazonDynamoDBStreamsConfig)

Constructs AmazonDynamoDBStreamsClient with AWS Access Key ID, AWS Secret Key and an AmazonDynamoDBStreamsClient Configuration object.

public AmazonDynamoDBStreamsClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, AmazonDynamoDBStreamsConfig clientConfig)

Parameters

awsAccessKeyId string

AWS Access Key ID

awsSecretAccessKey string

AWS Secret Access Key

awsSessionToken string

AWS Session Token

clientConfig AmazonDynamoDBStreamsConfig

The AmazonDynamoDBStreamsClient Configuration Object

AmazonDynamoDBStreamsClient(string, string, string, RegionEndpoint)

Constructs AmazonDynamoDBStreamsClient with AWS Access Key ID and AWS Secret Key

public AmazonDynamoDBStreamsClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, RegionEndpoint region)

Parameters

awsAccessKeyId string

AWS Access Key ID

awsSecretAccessKey string

AWS Secret Access Key

awsSessionToken string

AWS Session Token

region RegionEndpoint

The region to connect.

Properties

ServiceMetadata

Capture metadata for the service.

protected override IServiceMetadata ServiceMetadata { get; }

Property Value

IServiceMetadata

Methods

CreateSigner()

Creates the signer for the service.

protected override AbstractAWSSigner CreateSigner()

Returns

AbstractAWSSigner

CustomizeRuntimePipeline(RuntimePipeline)

Customizes the runtime pipeline.

protected override void CustomizeRuntimePipeline(RuntimePipeline pipeline)

Parameters

pipeline RuntimePipeline

Runtime pipeline for the current client.

DescribeStreamAsync(DescribeStreamRequest, CancellationToken)

Returns information about a stream, including the current status of the stream, its Amazon Resource Name (ARN), the composition of its shards, and its corresponding DynamoDB table.

note

You can call

DescribeStream
at a maximum rate of 10 times per second.

Each shard in the stream has a

SequenceNumberRange
associated with it. If the
SequenceNumberRange
has a
StartingSequenceNumber
but no
EndingSequenceNumber
, then the shard is still open (able to receive more stream records). If both
StartingSequenceNumber
and
EndingSequenceNumber
are present, then that shard is closed and can no longer receive more data.
public virtual Task<DescribeStreamResponse> DescribeStreamAsync(DescribeStreamRequest request, CancellationToken cancellationToken = default)

Parameters

request DescribeStreamRequest

Container for the necessary parameters to execute the DescribeStream service method.

cancellationToken CancellationToken

A cancellation token that can be used by other objects or threads to receive notice of cancellation.

Returns

Task<DescribeStreamResponse>

The response from the DescribeStream service method, as returned by DynamoDBStreams.

Exceptions

InternalServerErrorException

An error occurred on the server side.

ResourceNotFoundException

The operation tried to access a nonexistent stream.

See Also

DescribeStreamAsync(string, CancellationToken)

Returns information about a stream, including the current status of the stream, its Amazon Resource Name (ARN), the composition of its shards, and its corresponding DynamoDB table.

note

You can call

DescribeStream
at a maximum rate of 10 times per second.

Each shard in the stream has a

SequenceNumberRange
associated with it. If the
SequenceNumberRange
has a
StartingSequenceNumber
but no
EndingSequenceNumber
, then the shard is still open (able to receive more stream records). If both
StartingSequenceNumber
and
EndingSequenceNumber
are present, then that shard is closed and can no longer receive more data.
public virtual Task<DescribeStreamResponse> DescribeStreamAsync(string streamArn, CancellationToken cancellationToken = default)

Parameters

streamArn string

The Amazon Resource Name (ARN) for the stream.

cancellationToken CancellationToken

A cancellation token that can be used by other objects or threads to receive notice of cancellation.

Returns

Task<DescribeStreamResponse>

The response from the DescribeStream service method, as returned by DynamoDBStreams.

Exceptions

InternalServerErrorException

An error occurred on the server side.

ResourceNotFoundException

The operation tried to access a nonexistent stream.

See Also

Dispose(bool)

Disposes the service client.

protected override void Dispose(bool disposing)

Parameters

disposing bool

GetRecordsAsync(GetRecordsRequest, CancellationToken)

Retrieves the stream records from a given shard.

Specify a shard iterator using the

ShardIterator
parameter. The shard iterator specifies the position in the shard from which you want to start reading stream records sequentially. If there are no stream records available in the portion of the shard that the iterator points to,
GetRecords
returns an empty list. Note that it might take multiple calls to get to a portion of the shard that contains stream records.
note

GetRecords
can retrieve a maximum of 1 MB of data or 1000 stream records, whichever comes first.
public virtual Task<GetRecordsResponse> GetRecordsAsync(GetRecordsRequest request, CancellationToken cancellationToken = default)

Parameters

request GetRecordsRequest

Container for the necessary parameters to execute the GetRecords service method.

cancellationToken CancellationToken

A cancellation token that can be used by other objects or threads to receive notice of cancellation.

Returns

Task<GetRecordsResponse>

The response from the GetRecords service method, as returned by DynamoDBStreams.

Exceptions

ExpiredIteratorException

The shard iterator has expired and can no longer be used to retrieve stream records. A shard iterator expires 15 minutes after it is retrieved using the

GetShardIterator
action.
InternalServerErrorException

An error occurred on the server side.

LimitExceededException

Your request rate is too high. The AWS SDKs for DynamoDB automatically retry requests that receive this exception. Your request is eventually successful, unless your retry queue is too large to finish. Reduce the frequency of requests and use exponential backoff. For more information, go to Error Retries and Exponential Backoff in the Amazon DynamoDB Developer Guide.

ResourceNotFoundException

The operation tried to access a nonexistent stream.

TrimmedDataAccessException

The operation attempted to read past the oldest stream record in a shard.

In DynamoDB Streams, there is a 24 hour limit on data retention. Stream records whose age exceeds this limit are subject to removal (trimming) from the stream. You might receive a TrimmedDataAccessException if:

  • You request a shard iterator with a sequence number older than the trim point (24 hours).

  • You obtain a shard iterator, but before you use the iterator in a

    GetRecords
    request, a stream record in the shard exceeds the 24 hour period and is trimmed. This causes the iterator to access a record that no longer exists.
See Also

GetRecordsAsync(string, CancellationToken)

Retrieves the stream records from a given shard.

Specify a shard iterator using the

ShardIterator
parameter. The shard iterator specifies the position in the shard from which you want to start reading stream records sequentially. If there are no stream records available in the portion of the shard that the iterator points to,
GetRecords
returns an empty list. Note that it might take multiple calls to get to a portion of the shard that contains stream records.
note

GetRecords
can retrieve a maximum of 1 MB of data or 1000 stream records, whichever comes first.
public virtual Task<GetRecordsResponse> GetRecordsAsync(string shardIterator, CancellationToken cancellationToken = default)

Parameters

shardIterator string

A shard iterator that was retrieved from a previous GetShardIterator operation. This iterator can be used to access the stream records in this shard.

cancellationToken CancellationToken

A cancellation token that can be used by other objects or threads to receive notice of cancellation.

Returns

Task<GetRecordsResponse>

The response from the GetRecords service method, as returned by DynamoDBStreams.

Exceptions

ExpiredIteratorException

The shard iterator has expired and can no longer be used to retrieve stream records. A shard iterator expires 15 minutes after it is retrieved using the

GetShardIterator
action.
InternalServerErrorException

An error occurred on the server side.

LimitExceededException

Your request rate is too high. The AWS SDKs for DynamoDB automatically retry requests that receive this exception. Your request is eventually successful, unless your retry queue is too large to finish. Reduce the frequency of requests and use exponential backoff. For more information, go to Error Retries and Exponential Backoff in the Amazon DynamoDB Developer Guide.

ResourceNotFoundException

The operation tried to access a nonexistent stream.

TrimmedDataAccessException

The operation attempted to read past the oldest stream record in a shard.

In DynamoDB Streams, there is a 24 hour limit on data retention. Stream records whose age exceeds this limit are subject to removal (trimming) from the stream. You might receive a TrimmedDataAccessException if:

  • You request a shard iterator with a sequence number older than the trim point (24 hours).

  • You obtain a shard iterator, but before you use the iterator in a

    GetRecords
    request, a stream record in the shard exceeds the 24 hour period and is trimmed. This causes the iterator to access a record that no longer exists.
See Also

GetShardIteratorAsync(GetShardIteratorRequest, CancellationToken)

Returns a shard iterator. A shard iterator provides information about how to retrieve the stream records from within a shard. Use the shard iterator in a subsequent

GetRecords
request to read the stream records from the shard.
note

A shard iterator expires 15 minutes after it is returned to the requester.

public virtual Task<GetShardIteratorResponse> GetShardIteratorAsync(GetShardIteratorRequest request, CancellationToken cancellationToken = default)

Parameters

request GetShardIteratorRequest

Container for the necessary parameters to execute the GetShardIterator service method.

cancellationToken CancellationToken

A cancellation token that can be used by other objects or threads to receive notice of cancellation.

Returns

Task<GetShardIteratorResponse>

The response from the GetShardIterator service method, as returned by DynamoDBStreams.

Exceptions

InternalServerErrorException

An error occurred on the server side.

ResourceNotFoundException

The operation tried to access a nonexistent stream.

TrimmedDataAccessException

The operation attempted to read past the oldest stream record in a shard.

In DynamoDB Streams, there is a 24 hour limit on data retention. Stream records whose age exceeds this limit are subject to removal (trimming) from the stream. You might receive a TrimmedDataAccessException if:

  • You request a shard iterator with a sequence number older than the trim point (24 hours).

  • You obtain a shard iterator, but before you use the iterator in a

    GetRecords
    request, a stream record in the shard exceeds the 24 hour period and is trimmed. This causes the iterator to access a record that no longer exists.
See Also

ListStreamsAsync(ListStreamsRequest, CancellationToken)

Returns an array of stream ARNs associated with the current account and endpoint. If the

TableName
parameter is present, then
ListStreams
will return only the streams ARNs for that table.
note

You can call

ListStreams
at a maximum rate of 5 times per second.
public virtual Task<ListStreamsResponse> ListStreamsAsync(ListStreamsRequest request, CancellationToken cancellationToken = default)

Parameters

request ListStreamsRequest

Container for the necessary parameters to execute the ListStreams service method.

cancellationToken CancellationToken

A cancellation token that can be used by other objects or threads to receive notice of cancellation.

Returns

Task<ListStreamsResponse>

The response from the ListStreams service method, as returned by DynamoDBStreams.

Exceptions

InternalServerErrorException

An error occurred on the server side.

ResourceNotFoundException

The operation tried to access a nonexistent stream.

See Also

ListStreamsAsync(CancellationToken)

Returns an array of stream ARNs associated with the current account and endpoint. If the

TableName
parameter is present, then
ListStreams
will return only the streams ARNs for that table.
note

You can call

ListStreams
at a maximum rate of 5 times per second.
public virtual Task<ListStreamsResponse> ListStreamsAsync(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

A cancellation token that can be used by other objects or threads to receive notice of cancellation.

Returns

Task<ListStreamsResponse>

The response from the ListStreams service method, as returned by DynamoDBStreams.

Exceptions

InternalServerErrorException

An error occurred on the server side.

ResourceNotFoundException

The operation tried to access a nonexistent stream.

See Also