I have a project in which I have to capture the DynamoDB table change events using the Kinesis Data Streams. Here are the sequence of operations that I am performing on my local:
- Start the DDB container: aws-dynamodb-local. On port 8000
- Start the Kinesis container: aws-kinesis-local. On port 8001
- Create a new DDB table:
aws dynamodb create-table \
--table-name Music \
--attribute-definitions \
AttributeName=Artist,AttributeType=S \
AttributeName=SongTitle,AttributeType=S \
--key-schema \
AttributeName=Artist,KeyType=HASH \
AttributeName=SongTitle,KeyType=RANGE \
--provisioned-throughput \
ReadCapacityUnits=5,WriteCapacityUnits=5 \
--table-class STANDARD --endpoint-url=http://localhost:8000
- Create a new stream:
aws kinesis create-stream --stream-name samplestream --shard-count 3
--endpoint-url=http://localhost:8001
- Enable the Kinesis streams on the table to capture change events:
aws dynamodb enable-kinesis-streaming-destination \
--table-name Music \
--stream-arn arn:aws:kinesis:us-east-1:000000000000:stream/samplestream
--endpoint-url=http://localhost:8000
An error occurred (UnknownOperationException) when calling the EnableKinesisStreamingDestination operation:
Can anyone help me here to understand what I am doing wrong here? How can I resolve the above UnknownOperationException in my local?
Localstack provides a easy way to configure this but the DynamoDB of Localstack has very poor performance, so I am trying to find an alternate way for the setup.