0

我在 terraform.tfvars 中使用以下值定义了变量

oke_vcn_cidr               = "10.0.0.0/21"

我想在同一个 terraform.tfvars 的出口规则中添加相同的 oke_vcn_cidr 变量值,而不是再次硬编码。

目前,我给目的地的值与下面相同。

egress_security_rules_intlb = {
  sl1 = { protocol = "6", destination = "10.0.0.0/21", stateless = "false", min = 10256, max = 10256, description = "outbound traffic to public load balancer" }
}

如何获取此变量 oke_vcn_cidr的值 并将其替换为 terraform.tfvars 中的目标值

egress_security_rules_intlb = {
  sl1 = { protocol = "6", destination = **<value of variable oke_vcn_cidr>**, stateless = "false", min = 10256, max = 10256, description = "outbound traffic to public load balancer" }
}

任何帮助,将不胜感激。

4

1 回答 1

2

可悲的是你不能这样做。变量不能引用其他变量。相反,您必须创建一个局部变量:

locals {
   egress_security_rules_intlb = {for k, v in var.egress_security_rules_intlb:
                   k => merge(v, {destination = var.oke_vcn_cidr})}
}

然后您必须local.egress_security_rules_intlb在模块的其余部分中使用。

于 2021-11-14T10:02:09.433 回答