使用 Terraform 将非键属性添加到 DynamoDB。

Ash*_*tia 3 amazon-web-services amazon-dynamodb terraform

我正在尝试在 Dynamo 表中添加非键属性。只是尝试执行此https://www.terraform.io/docs/providers/aws/r/dynamodb_table.html第一个示例。我收到错误“必须对所有属性建立索引。未使用的属性”

有人可以解释一下吗?或者如何使用 Terraform 将非键属性添加到 dynamodb。

Mar*_*ins 8

DynamoDB 是一种无模式数据存储,因此通常不需要提前声明属性。

例外的是充当表本身(主键、排序键)或辅助索引的键的任何属性。这些必须定义为表定义的一部分,因为 DynamoDB 需要知道如何构建必要的索引以通过这些属性进行高效查询。

文档中更详细地提到了这一点:

仅在表对象上定义将用作以下用途的属性:

  • 表哈希键或范围键
  • LSI 或 GS​​I 哈希键或范围键

示例中的三个属性UserIdGameTitle和分别在、和索引TopScore中使用,因此应该接受它们。hash_keyrange_keyGameTitleIndex

要设置不是键的属性,只需在将项目写入表时包含它即可。DynamoDB 将存储该结果并在检索项目时返回它,但您在查询表时将无法将其用作过滤器或排序键。