在输出中可能包含空值的列表列表

时间:2020-07-24 03:23:23

标签: terraform

我们重构了一些代码,并且在编写代码时,保证数组具有4个元素。现在它可以是4或0。该模块的输出语句为:(为简单起见,将其缩减了一点)


output "foo" {
 value = { "valuea" = thing.subthing[0].id,
           "valueb" = thing.subthing[1].id,
           "valuec" = thing.subthing[2].id,
           "valued" = thing.subthing[3].id
}

现在,当thing.subthing是一个空的元组时,它可以理解地吹大块。我在最简单的方法上确定一个空白,以确定它是否为空,然后继续前进。

这些实际上是子网ID的列表,由于添加了一个标志以跳过其创建,因此未完成,因为其计数设置为0。在该文件中,我还有大约12件事了,我会修复同样的方式...

哦,tf 0.12.20左右。

1 个答案:

答案 0 :(得分:0)

我一直被惯用的技巧所困住,例如用空数组进行包围仍然在丢失的元组上吹起了大块,直到被提醒Splat表示法有所不同,所以

`length(thing.subthing [*]。id)> 0吗? something.subthing [0] .id:0

工作正常。

尽管现在我想起来了,那是我们的0.11代码遗留下来的,我可能应该将值重构为一个数组,将其转换为for_each代码。在我的业余时间里。