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 = []
}
我已经尝试了我能想到的所有方法来调用它,但它总是会出现错误消息,例如“不正确的列表元素类型:需要字符串”。或“此默认值与变量的类型约束不兼容:需要对象列表。”
我正在尝试用类似的方式调用上述内容;
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"
}
}
我已经删除了它周围的方括号,因为这也会导致错误,但我可能需要重新添加它们。
有人可以帮助请以正确的方式引用具有这些值的对象列表吗
解决方案
您的正确默认值为additional_asg_tags
a 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_launch
推荐阅读
- python - 通过在索引标签上相乘来广播 Dataframe 上的标量
- .net - 选择 .net 4 时,FB Feedshare 无法与 Unity 2018.4 一起使用
- php - 如何在没有浏览器登录密码表单的情况下使用 ntlm?
- python - 停止 pandas to_excel() 在字符串上添加撇号
- dart - Dart 的 NetworkInterface 类不提供任何麝香长度信息。如何获取信息?
- java - 如何使用xml在spring security中禁用注销确认?
- sql - 如何使用 distinct 或 group max sql 进行分组
- c# - 小数点后保留一位,不四舍五入
- postgresql - Postgres解释计划对于具有不同参数的相同查询是不同的
- docker - 需要在每个 docker start (不是 docker run )期间将参数传递给 docker entrypoint.sh 。这样的事情可能吗?