gpt4 book ai didi

terraform - 如何在 tf 模板中的条件语句中截断行?

转载 作者:行者123 更新时间:2023-12-05 09:33:48 25 4
gpt4 key购买 nike

我在模板中这样做:

%{ if myvar != "sss" }
bunch
of
text
%{ else }
some
other
text
%{ endif }

这行得通,但是在 if 语句所在的位置有一个新行。我可以将文本 block 的第一行放在同一行,但我认为这不可读:

%{ if myvar != "sss" }bunch
of
text
%{ else }some
other
text%{ endif }

在 Go 模板中。我可以做这样的事情来压缩新行:

%{- if myvar != "sss" }
bunch
of
text
%{- else }
some
other
text
%{- endif }

你如何在 tf 中做到这一点?

最佳答案

实际上 ~ 最后可能会导致您配置错误,例如当您尝试创建 yaml 文件时

foo:
aaa: aaa
%{ if enabled ~}
bar:
baz: ${baz}
%{ endif ~}
bbb: bbb

像这样给你错误的 yaml:

> templatefile("sss.yaml", {enabled=true,baz="baz"})
foo:
aaa: aaa
bar:
baz: baz
bbb: bbb

这个将返回正确的 yaml 但带有新的 lins

foo:
aaa: aaa
%{ if enabled }
bar:
baz: ${baz}
%{ endif }
bbb: bbb
> templatefile("sss.yaml", {enabled=true,baz="baz"})
foo:
aaa: aaa

bar:
baz: baz

bbb: bbb


所以为了获得正确的文件,你必须在你的表达式之前和之后输入 ~

foo:
aaa: aaa
%{~ if enabled ~}
bar:
baz: ${baz}
%{~ endif ~}
bbb: bbb
> templatefile("sss.yaml", {enabled=true,baz="baz"})
foo:
aaa: aaa
bar:
baz: baz
bbb: bbb

关于terraform - 如何在 tf 模板中的条件语句中截断行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67026010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com