我使用的模块引用了一个中央模块,该模块用于在terraform中构建Puppet服务器。在根模块中有一个变量,它允许在ASG中使用额外的标记,但是我似乎不能得到正确的语法。以下是核心存储库中的信息:
variable "additional_asg_tags" {
description = "A map of additional tags to add to the puppet server ASG."
type = list(object({ key = string, value = string, propagate_at_launch = bool }))
default = []
}我已经尝试了我能想到的所有方法来调用它,但它总是出错,并显示类似“不正确的列表元素类型:需要字符串”这样的消息。或“此默认值与变量的类型约束不兼容:需要的对象列表。”
我试着用类似这样的东西调用上面的代码;
variable "additional_asg_tags" {
description = "A map of additional tags to add to ASG."
type = list(object({ key = string, value = string, propagate_at_launch = bool }))
default = { key = "Name", value = "Puppet-nonprod", propagate_at_launch = "true"
}
}我删除了它周围的方括号,因为这也会导致错误,但我可能需要重新添加这些方括号。
有没有人能帮我找出引用这些值的对象列表的正确方法
发布于 2021-02-16 17:44:54
additional_asg_tags的校正缺省值为list
variable "additional_asg_tags" {
description = "A map of additional tags to add to ASG."
type = list(object({
key = string,
value = string,
propagate_at_launch = bool
}))
default = [{
key = "Name",
value = "Puppet-nonprod",
propagate_at_launch = "true"
}]
}您可以按如下方式引用单个元素(一些示例):
var.additional_asg_tags[0]["key"]
var.additional_asg_tags[0].value
# to get list
var.additional_asg_tags[*].propagate_at_launchhttps://stackoverflow.com/questions/66221332
复制相似问题