3
不知道這是否可能,但我有一個DynamoDb表的模塊,我想使global_secondary_index
屬性爲可選,但我無法弄清楚如何執行此操作。terraform模塊中的可選映射變量
我有以下模塊
resource "aws_dynamodb_table" "basic_dynamodb_table" {
name = "${var.table_name}"
read_capacity = "${var.read_capacity}"
write_capacity = "${var.write_capacity}"
hash_key = "${var.primary_key}"
attribute {
name = "${var.primary_key}"
type = "${var.primary_key_type}"
}
global_secondary_index = ["${var.global_secondary_index}"]
}
variable "table_name" {}
variable "read_capacity" {
default = "1"
}
variable "write_capacity" {
default = "1"
}
variable "primary_key" {}
variable "primary_key_type" {}
variable "global_secondary_index" {
default = {}
type = "map"
description = "This should be optional"
}
而且,它還將被用來
module "test-table" {
source = "./modules/DynamoDb"
table_name = "test-table"
primary_key = "Id"
primary_key_type = "S"
global_secondary_index = {
name = "by-secondary-id"
hash_key = "secondaryId"
range_key = "type"
projection_type = "INCLUDE"
non_key_attributes = [
"id"
]
write_capacity = 1
read_capacity = 1
}
}
我已經試過:
- 不使用
[]
周圍的插值並獲得global_secondary_index: should be a list
錯誤 - just usi納克的VAR
global_secondary_index = ["${var.global_secondary_index}"]
得到global_secondary_index.0: expected object, got string
錯誤 - 條件,但顯然不支持列表或地圖
- 合併地圖
global_secondary_index = ["${merge(var.global_secondary_index,map())}"]
也得到global_secondary_index.0: expected object, got string
錯誤
出如何使這項工作現在