TTLとは

利用例

TTL詳細

エポック時間形式(Unixtime)

実際にやってみた

テーブル作成

aws dynamodb create-table --table-name ttl-sample \
--attribute-definitions AttributeName=id,AttributeType=S \
--key-schema AttributeName=id,KeyType=HASH \
--provisioned-throughput \
ReadCapacityUnits=5,WriteCapacityUnits=5

TTLの有効化

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

{
    "TimeToLiveSpecification": {
        "AttributeName": "ttl",
        "Enabled": true
    }
}

aws dynamodb describe-time-to-live --table-name ttl-sample
{
    "TimeToLiveDescription": {
        "AttributeName": "ttl", 
        "TimeToLiveStatus": "ENABLED"
    }
}

データ追加(TTL:5日)

EXP=`date -d '+5 days' +%s`
aws dynamodb put-item --table-name "ttl-sample" --item '{"id": {"S": "1"}, "ttl": {"N": "'$EXP'"}}'

aws dynamodb scan --table-name ttl-sample
{
    "Count": 1,
    "Items": [
        {
            "id": {
                "S": "1"
            },
            "ttl": {
                "N": "1567788232"
            }
        }
    ],
    "ScannedCount": 1,
    "ConsumedCapacity": null
}

お片付け

aws dynamodb delete-table --table-name ttl-sample

さいごに