【发布时间】:2020-12-12 02:09:26
【问题描述】:
我有两个模块:
module "vpc" {
..
..
}
module "subnet" {
vpc = "${module.vpc.id}"
}
以及相应的变量和输出文件。
基于一个条件,我想动态地改变模块子网中 vpc 的值。
即 vpc 的值可以是 "${module.vpc.id}" 或 "${var.vpcid}"。
当我这样做时,我可以创建一个新的 vpc 和子网,当 vpc 的值设置为 - "${module.vpc.id}" 应用所有 terrform 模块时,
并且当 vpc 的值为"${var.vpcid}"(此处 terraform 应用不包括 vpc 模块)时,还可以使用现有的 vpc
我尝试使用表达式,在这两个模块之外使用了带有条件的本地块,但它最终创建了一个新的 vpc。
locals {
vpctake = "${var.vpcch ? element(module.vpc.id, 0) : var.vpcid}"
}
其中 vpcch 可以为真或假 在子网模块中:
vpc = "${local.vpctake}"
有没有办法实现这个。
【问题讨论】:
-
您能否实际显示您尝试过的代码和错误消息。可能更容易看到您要执行的操作。
标签: amazon-web-services terraform terraform-provider-aws