我有一个 DynamoDB 表并为过期项目定义了一个字段。在我的代码中,我小心地随机生成了 15 到 120 分钟的 TTL,只是为了测试此功能,但似乎什么也没有发生。我等了快一周了,东西还在那里。然后我看到很多文章和网站都说了一切(包括StackOverflow),但似乎没有什么可以解决问题。从那时起我收集到的东西:
我做错了什么吗?
这是 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
没有24-48小时保证,但如果配置正确就会被删除。
您必须明确使用 FilterExpression 来执行此操作。
这不是必需的
移除物品没有最长时间限制。
您没有做的一件事是共享一个您希望已被删除的示例项目。添加该内容并在对此答案的评论上告诉我。