scr*_*row 4 amazon-web-services terraform
我正在使用一个模块,该模块引用用于在 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 = []
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试了所有我能想到的方法来调用它,但它总是出现错误,并显示“不正确的列表元素类型:需要字符串”之类的消息。或“此默认值与变量的类型约束不兼容:需要对象列表。”
我试图用类似的东西来调用上面的内容;
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"
}
}
Run Code Online (Sandbox Code Playgroud)
我已经删除了周围的方括号,因为这也会导致错误,但我可能需要将它们添加回来。
有人可以帮忙了解引用具有这些值的对象列表的正确方法是什么吗
您的正确默认值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"
}]
}
Run Code Online (Sandbox Code Playgroud)
您可以按如下方式引用各个元素(一些示例):
var.additional_asg_tags[0]["key"]
var.additional_asg_tags[0].value
# to get list
var.additional_asg_tags[*].propagate_at_launch
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6643 次 |
| 最近记录: |