简体   繁体   中英

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:

  • For DynamoDB - dwmkerr/dynamodb
  • For internal AWS CLI - garland/aws-cli-docker

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

Best.

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

  • Even if you use a local environment, you should use real AWS credentials (AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY). You can get it here after register.
  • If you use --endpoint-url parameter for creating DB, then you should use it with the same value for update-time-to-live or any other action for the DB.

Cheers!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM