gpt4 book ai didi

amazon-dynamodb - terraform 模块中的可选 map 变量

转载 作者:行者123 更新时间:2023-12-04 21:07:19 26 4
gpt4 key购买 nike

不确定这是否可行,但我有一个用于 DynamoDb 表的模块,我想制作 global_secondary_index属性可选,但我不知道该怎么做。

我有以下模块

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错误
  • 只使用 var global_secondary_index = ["${var.global_secondary_index}"]获取 global_secondary_index.0: expected object, got string错误
  • 有条件但显然不支持列表或 map
  • 合并 map global_secondary_index = ["${merge(var.global_secondary_index,map())}"]也得到 global_secondary_index.0: expected object, got string错误

  • 现在没有关于如何使这项工作的想法

    最佳答案

    似乎是缺少的功能:

    https://github.com/hashicorp/terraform/issues/3388

    该主题的变体(将 map 列表传递给资源):

    https://github.com/hashicorp/terraform/issues/12294
    https://github.com/hashicorp/terraform/issues/7705

    最后要注意的一件事是,在条件条件下,您可以偷偷摸摸地处理这些条件。

    resource "some_tf_resource" "meh" {
    count = "${length(keys(var.my_map)) > 0 ? 1 : 0}"
    # other resource settings here
    }

    使用 count 并将其设置为 0 是解决早期版本中 terraforms 缺乏条件的黑客方法。它仍然有效 =)

    如果有其他资源依赖于 meh,那很快就会变得丑陋。资源,所以如果你能避免它,我不会经常使用它。

    关于amazon-dynamodb - terraform 模块中的可选 map 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42498102/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com