DynamoDB TTL 问题

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

我有一个 DynamoDB 表并为过期项目定义了一个字段。在我的代码中,我小心地随机生成了 15 到 120 分钟的 TTL,只是为了测试此功能,但似乎什么也没有发生。我等了快一周了,东西还在那里。然后我看到很多文章和网站都说了一切(包括StackOverflow),但似乎没有什么可以解决问题。从那时起我收集到的东西:

  1. 保证删除,但要等24到48小时(什么也没有发生)
  2. 过期的项目应从扫描和查询中删除(确定)
  3. RCU 和 WCU 应该不同,所以我把 RCU > WCU,但没有任何反应,这不是必需的
  4. 我的商品在表中已经快一周了,为什么?

我做错了什么吗?

这是 Terraform 代码的表示:

resource "aws_dynamodb_table" "books_database" {
    name           = "${var.workspace}-books-database"
    billing_mode   = "PROVISIONED"
    read_capacity  = "20"
    write_capacity = "10"
    hash_key       = "Id"
    range_key      = "Title"
    stream_enabled = false

    attribute {
        name = "Id"
        type = "N"
    }

    attribute {
        name = "Title"
        type = "S"
    }

    global_secondary_index {
        hash_key        = "Title"
        name            = "TitleIndex"
        projection_type = "ALL"
        read_capacity   = 20
        write_capacity  = 10
    }

    ttl {
        attribute_name = "ExpiresAt"
        enabled        = "true"
    }
}

示例:

编号:47 书名:《尤利西斯》 名字: 詹姆斯 姓氏: 乔伊斯 已过期:1710849676

  1. 更改了 RCU 和 WCU
  2. 等待删除项目
  3. 等待删除项目
  4. 等待删除项目
  5. 等待删除项目
  6. 等待删除项目
  7. 等待删除项目
  8. 等待删除项目
amazon-web-services amazon-dynamodb ttl
1个回答
0
投票
  1. 保证删除,但要等24到48小时(什么也没有发生)

没有24-48小时保证,但如果配置正确就会被删除。

  1. 过期的项目应从扫描和查询中删除(确定)

您必须明确使用 FilterExpression 来执行此操作。

  1. RCU 和 WCU 应该不同,所以我把 RCU > WCU,但没有任何反应,这不是必需的

这不是必需的

  1. 我的商品在表中已经快一周了,为什么?

移除物品没有最长时间限制。


您没有做的一件事是共享一个您希望已被删除的示例项目。添加该内容并在对此答案的评论上告诉我。

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