amazon-web-servicesdocker-composeamazon-dynamodbcommand-line-interface

UnrecognizedClientException error when I try to enable "time to live" on local DynamoDB


I use local DynamoDB on Docker and I want to set up a time to live (TTL) feature for the table.

To table creates I use:

aws dynamodb create-table \
    --table-name activity \
    --attribute-definitions \
        AttributeName=deviceId,AttributeType=S \
        AttributeName=time,AttributeType=S \
    --key-schema \
        AttributeName=deviceId,KeyType=HASH \
        AttributeName=time,KeyType=RANGE \
    --billing-mode 'PAY_PER_REQUEST' \
    --endpoint-url http://dynamo:8000

And it works as need.

But when I try to enable TTL:

aws dynamodb update-time-to-live \
    --table-name activity \
    --time-to-live-specification Enabled=true,AttributeName=ttl

I got the error: An error occurred (UnrecognizedClientException) when calling the UpdateTimeToLive operation: The security token included in the request is invalid

Dummy credentials for the Docker I sent using docker-compose environment:

AWS_ACCESS_KEY_ID: 0
AWS_SECRET_ACCESS_KEY: 0
AWS_DEFAULT_REGION: eu-central-1

Used Docker images:

What is wrong? How can I enable the feature using local Docker? Thanks for any answer.

Best.


Solution

  • After an extra a few hours of failures, I have an answer. I hope it helps somebody save a bit of time:

    Cheers!