我有以下用例:
让我们看一个示例配置:
variable "majorVersion" {
type = "string"
}
module "media-assets" {
majorVersion = "${var.majorVersion}"
input_bucket = "uploads-${var.majorVersion}"
source = "./modules/media-assets"
}
现在假设我要部署另一个版本,这会在配置中添加另一个模块:
module "sns" {
url = "https://my-api-${var.majorVersion}.xyz.com/sns"
source = "./modules/sns"
}
由于v1不需要此资源,因此不希望为v1创建它。添加后半部分而无需使用Terraform创建sns资源后,我是否仍可以为majorVersion = v1运行此脚本?有没有一种方法可以基于变量控制包含哪些模块和不包含哪些模块?
答案 0 :(得分:0)
我不知道版本12是否更好,但是您仍然可以使用旧的方法来创建资源,具体取决于变量,如下所示:
module "sns" {
count = ${var.create}
url = "https://my-api-${var.majorVersion}.xyz.com/sns"
source = "./modules/sns"
}
如果create等于0,将不会创建资源。