在 terraform 中重用现有模块
Reuse existing module in terraform
我对不同的模块使用不同的变量,但它们的唯一区别是名称,有没有办法拥有一个模块,我可以使用不同的变量对其进行迭代。我不必为它单独制作一个模块,我可以重复使用它
variable "Nodejs" {
default = "node"
}
variable "Python" {
default = "python"
}
variable "Java" {
default = "java"
}
module "Nodejs" {
source = "./modules/NodeJs"
name = var.Nodejs
}
module "Python" {
source = "./modules/python"
name = var.Python
}
module "Java" {
source = "./modules/java"
name = var.Java
}
您可以对您的代码进行一些重构,以便您可以在模块中使用 for_each。
一个例子:
variable "languages" {
default = ["Nodejs", "Python", "Java"]
}
module "language" {
source = "./modules/language"
for_each = toset(var.languages)
name = each.key
}
然后您可以参考各个模块使用,例如:
module.language["Python"]
为此,您必须重构 modules
文件夹。
我对不同的模块使用不同的变量,但它们的唯一区别是名称,有没有办法拥有一个模块,我可以使用不同的变量对其进行迭代。我不必为它单独制作一个模块,我可以重复使用它
variable "Nodejs" {
default = "node"
}
variable "Python" {
default = "python"
}
variable "Java" {
default = "java"
}
module "Nodejs" {
source = "./modules/NodeJs"
name = var.Nodejs
}
module "Python" {
source = "./modules/python"
name = var.Python
}
module "Java" {
source = "./modules/java"
name = var.Java
}
您可以对您的代码进行一些重构,以便您可以在模块中使用 for_each。
一个例子:
variable "languages" {
default = ["Nodejs", "Python", "Java"]
}
module "language" {
source = "./modules/language"
for_each = toset(var.languages)
name = each.key
}
然后您可以参考各个模块使用,例如:
module.language["Python"]
为此,您必须重构 modules
文件夹。