0

我想编写一个 terraform 模块来创建 dynamoDb 表。这些属性应该是从.tfvars默认变量中读取的,而不是已经.tf在资源指南中命名为here

为了进一步解释,假设正在使用属性列表来实现此伪代码:

resource "aws_dynamodb_table" "basic-dynamodb-table" {
name = "GameScores"
... #Other required feilds
...
... 
#  attributes is a list of names
  for(attribute_name:${length(var.attributes)}){
    attribute {
      name = "${var.attributes[i]}"
      type = "N"
    }
  }
}

如何在 terraform plan/apply 期间遍历属性列表并创建属性{}?属性块的数量不能像 terraform 文档中显示的那样是静态的,并且它们的名称必须从变量中读取。

4

1 回答 1

1

创建 DynamoDB 表时,您需要指定的唯一属性是分区键和排序键(可选)。所有其他属性都存储为您存储在表中的每个文档(或项目)的一部分。

这同样适用于全球二级索引。您只需为每个索引指定分区键和排序键。

如果您没有静态属性,则无法创建表。分区和排序键的名称在表/索引的生命周期内必须相同。

最后,从问题中并不清楚,但请不要使用 Teraform 将数据加载到您的表中。这不是正确的工具!

于 2018-05-02T19:22:42.390 回答