我正在尝试在Dynamo Table中添加非关键属性。只是尝试执行此https://www.terraform.io/docs/providers/aws/r/dynamodb_table.html第一个示例。我收到错误消息“必须为所有属性建立索引。未使用的属性”
有人可以解释吗?或如何使用Terraform将非关键属性添加到dynamodb。
答案 0 :(得分:2)
DynamoDB是无模式数据存储,因此通常不必提前声明属性。
任何异常都可以用作表本身(主键,排序键)或辅助索引的键。这些必须定义为表的定义的一部分,因为DynamoDB需要知道如何构造必要的索引以通过这些属性进行有效查询。
这在文档中有更详细的提及:
仅在表对象上定义将要使用的属性 为:
- 表哈希键或范围键
- LSI或GSI哈希键或范围键
示例中的三个属性UserId
,GameTitle
和TopScore
在hash_key
,range_key
和GameTitleIndex
中使用分别索引,因此它们应该被接受。
要设置不是键的属性,只需在将项目写入表中时将其包括在内。 DynamoDB将存储该结果,并在检索到该项目时将其返回,但是查询表时将无法将其用作过滤器或排序键。