rsy*_*rsy 20 terraform hcl terraform-modules
我一直在尝试有条件地使用根模块中的模块,以便在某些环境下不会创建该模块。许多人声称,通过count使用条件将模块中的 设为 0 或 1 即可达到目的。
module "conditionally_used_module" {
source = "./modules/my_module"
count = (var.create == true) ? 1 : 0
}
Run Code Online (Sandbox Code Playgroud)
然而,这改变了 的类型conditionally_used_module:我们将拥有一个包含单个对象的列表(或元组),而不是对象(或映射)。是否有另一种方法可以实现此目的,而不意味着更改模块的类型?
Mih*_*ncu 14
要有条件地创建模块,您可以使用变量,假设它create_module在variables.tfmodule 的文件中调用conditionally_used_module。
然后,对于模块内的每个资源,conditionally_used_module您将使用count有条件地创建或不创建该特定资源。
下面的示例应该可以工作并为您提供所需的效果。
# Set a variable to know if the resources inside the module should be created
module "conditionally_used_module" {
source = "./modules/my_module"
create_module = var.create
}
# Inside the conditionally_used_module file
# ( ./modules/my_module/main.tf ) most likely
# for every resource inside use the count to create or not each resource
resource "resource_type" "resource_name" {
count = var.create_module ? 1 : 0
... other resource properties
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32587 次 |
| 最近记录: |