【问题标题】:Adding non-key attribute to DynamoDB using Terraform.使用 Terraform 向 DynamoDB 添加非键属性。
【发布时间】:2018-12-11 08:25:19
【问题描述】:

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

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

【问题讨论】:

  • 我没有测试过,但是链接文档中给出的例子应该没​​问题。您能否显示您在问题中使用的确切代码并发布您得到的确切错误?

标签: amazon-web-services amazon-dynamodb terraform


【解决方案1】:

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

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

这在文档中有更详细的提及:

只定义要使用的表对象的属性 如:

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

示例中的三个属性UserIdGameTitleTopScore 分别用于hash_keyrange_keyGameTitleIndex 索引,因此它们应该被接受。

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

【讨论】:

  • 感谢您的回复。我知道 dynamodb 是无模式的,就像您可以在途中添加/更改属性一样。刚刚尝试使用 terraform 并遇到了这个问题。感谢您的澄清。
猜你喜欢
  • 1970-01-01
  • 2021-03-25
  • 2018-06-03
  • 1970-01-01
  • 2011-11-09
  • 2018-10-11
  • 2020-04-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多