Terraform + DynamoDB:从变量创建属性

时间:2018-05-01 22:01:37

标签: amazon-dynamodb terraform terraform-provider-aws

我想写一个将创建dynamoDb表的terraform模块。预期属性将从.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 docs中所示,并且必须从变量中读取它们的名称。

1 个答案:

答案 0 :(得分:1)

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

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

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

最后,问题不明确,但请不要使用Teraform将数据加载到您的表格中。它不是正确的工具!