amazon-web-services - 在 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
文件夹。
推荐阅读
- datepicker - 在 datePicker 中禁用手动输入日期
- javascript - 我应该避免使用 px 使 react-app 移动友好吗?
- php - 我需要向我的动态数据表添加超链接
- laravel - 如何在 laravel 中更新一行的多维数组
- android - 谷歌播放控制台不支持少于 26 个 Targetsdkversion?
- php - 获取 $_POST 的隐藏输入值
- css - CSS网格增长以适应内容
- pdo - 我可以在单个准备好的语句中同时使用 bindValue 和 bindParam 吗?
- android - 如何在带有 Kotlin 的 Android 中使用 AsyncTask?
- python - Numpy:将大概率矩阵有效凝聚成簇