我有一种情况,我需要存储一些中间值,以便可以在根模块的其他部分重用它们。我知道本地值,也知道 null_data_source,但我不知道哪一个是保存可重用值的推荐选项。这两个描述看起来和我有点相似
本地值(https://www.terraform.io/docs/configuration/locals.html)
局部值有助于避免在 > 配置中多次重复相同的值或表达式,但如果过度使用,它们还可以通过隐藏使用的实际值使未来的 > 维护者难以阅读配置。
和null_data_source ( https://www.terraform.io/docs/providers/null/data_source.html )
空数据源的主要用例是收集中间 > 值的集合,以便在配置中的其他地方重用:
因此,对于这种情况,两者似乎都是一个有效的选择。
这是我的示例代码
locals {
my_string_A = "This is string A"
}
data "null_data_source" "my_string_B" {
inputs = {
my_string_B = "This is string B"
}
}
output "my_output_a" {
value = "${local.my_string_A}"
}
output "my_output_b" {
value = "${data.null_data_source.my_string_B.outputs["my_string_B"]}"
}
您能否建议何时使用一种方法来保持中间值以及每种方法的优缺点是什么?
谢谢