terraform - 返回地图值的单个列表
问题描述
我需要动态配置参数值,instances
以便该值可以覆盖 default_parameters
值。在示例代码下方。
变量.tf
variable "instances" {
type = map(object({
suffix = string
modify_type = string
parameters = list(map(string))
}))
}
variable "default_parameters" {
type = list(map(string))
}
问题是,我需要使用 terraformmerge
函数,但它只接受地图或对象,如何将参数转换为地图?
dynamic "parameters" {
for_each = merge(var.default_parameters, var.instances[each.key].parameters)
content {
name = parameters.value.name
value = parameters.value.value
}
}
解决方案
我会建议不同的格式。而不是地图列表,只需使用地图:
variable "instances" {
type = map(object({
suffix = string
modify_type = string
parameters = map(string)
}))
default = {
"00" = {
suffix = "00-live"
modify_type = "Upgrade"
parameters = {
connect_timeout = 80
name = "my_instance"
}
}
}
}
variable "default_parameters" {
type = map(string)
default = {
connect_timeout = 100
name = "default_name"
}
}
然后:
dynamic "parameters" {
for_each = merge(var.default_parameters, var.instances[each.key].parameters)
content {
name = parameters.key
value = parameters.value
}
}
推荐阅读
- javascript - 单击时激活按钮切换类
- nlog - NLOG 不在服务器上记录未处理的异常
- jsf - 未设置 omnifaces.ListConverter 中的列表
- sql - 使用 SQL 脚本的条件 SQL 查询
- javascript - 哪种语法对 React 更典型,如果有的话(版本 16)?
- c# - 将二进制文件的前 X 个字节读入新文件
- excel - 如何将保存到特定文件夹的多个文本文件导入到Excel中的一个工作表一列,每个文件的不同行?
- google-bigquery - 在 BigQuery 中加入数组字段
- apache-spark - 从 Spark DataSet 中的单个列派生多个列并在新列上分组
- vba - 如何使用具有 2 个条件的 VBA 过滤日期列?