我在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映像:
怎么了?如何使用本地Docker启用功能?感谢您的回答。
最佳
经过几个小时的失败,我得到了答案。我希望它可以帮助您节省一些时间:
--endpoint-url
参数用于创建数据库,则应将其与相同的值用于update-time-to-live
或数据库的任何其他操作。干杯!