1

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:

  1. Start the DDB container: aws-dynamodb-local. On port 8000
  2. Start the Kinesis container: aws-kinesis-local. On port 8001
  3. 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
  1. Create a new stream:
aws kinesis create-stream --stream-name samplestream --shard-count 3 
    --endpoint-url=http://localhost:8001

  1. 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.

asn3416
  • 21
  • 1

1 Answers1

1

As of writing, there is no integration support between DynamoDB Local and https://github.com/saidsef/aws-kinesis-local. DynamoDB Local itself does not support streaming to a local Kinesis Data Stream today (only supports DynamoDB Stream).