【发布时间】:2022-02-01 02:04:55
【问题描述】:
在多个帖子中寻找这个问题的答案,但只找到了更简单场景的解决方案。
假设我有一个名为a 的模块,而这个模块依赖于多个不同的模块,我们称它们为b 和c。
module "a" {
source = ./a
depends_on = [module.B, module.C]
b_id = module.b.id
c_id = module.c.id
}
module "b" {
source = ./b
}
module "c" {
source = ./c
}
在天真的场景中,两个模块 b 和 c 将在我们创建模块 a 之前创建,但是如果我想让模块 a 的用户创建它自己的 b 实例怎么办和c,只需将他们的ID 传递给a,我们无需创建b 和c。
我知道count 资源上的技巧详细@ 987654321@,但它只适用于资源而不是模块,为了让它在这里工作,我需要将它应用于模块内的每个资源,这将创建一个繁琐的代码.
我也看到了 terraform conditional creation of objects,但是如果主模块/资源只有一个条件属性,这个解决方案效果很好,如果我们有 10 个模块可以由用户提供给我们或需要内联创建怎么办?
【问题讨论】:
-
你可以有一个条件,其中 true 评估为模块
b和c的声明,它们的输出映射到a输入,而 false 评估为没有模块声明b和c和data映射到a输入(也不会为true声明)。我可以用更具体的细节更具体,或者我可以写下那个答案。 -
@MattSchuchard 感谢您的回复。
one conditional到底是什么意思?
标签: terraform