当我尝试在本地DynamoDB上启用“生存时间”时出错

问题描述 投票:1回答:1

我在Docker上使用本地DynamoDB,我想为该表设置生存时间(TTL)功能。

到表创建,我使用:

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

并且根据需要工作。

但是当我尝试启用TTL时:

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

我收到错误:An error occurred (UnrecognizedClientException) when calling the UpdateTimeToLive operation: The security token included in the request is invalid

我使用docker-compose环境发送的Docker的虚拟凭据:

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

使用的Docker映像:

  • 对于DynamoDB-dwmkerr / dynamodb
  • 对于内部AWS CLI-garland / aws-cli-docker

怎么了?如何使用本地Docker启用功能?感谢您的回答。

最佳

amazon-web-services docker-compose amazon-dynamodb command-line-interface
1个回答
0
投票

经过几个小时的失败,我得到了答案。我希望它可以帮助您节省一些时间:

  • 即使您使用本地环境,也应使用真实的AWS凭证(AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY)。注册后即可获得here
  • 如果使用--endpoint-url参数用于创建数据库,则应将其与相同的值用于update-time-to-live或数据库的任何其他操作。

干杯!

© www.soinside.com 2019 - 2024. All rights reserved.