【问题标题】:append or prepend to terraform variable v12追加或添加到 terraform 变量 v12
【发布时间】:2020-04-09 03:13:53
【问题描述】:

我读到 v12 不再需要插值语法,我希望尽可能不使用它。我的一个问题是如何将字符串添加或附加到变量中,例如命名约定?

通过插值,你可以

name = "${var.variable_name}-vnet"

新的 v12 语法应该允许这样编写变量,但我不能像上面那样在 -vnet 上添加

name = var.variable_name

【问题讨论】:

  • 还是第一种插值方式。在 0.12 中引入的 HCL 2 的变化是添加了 hashicorp.com/blog/… 中提到的第一类表达式。但是如果你想插入这样的东西,那么你仍然需要相同的语法。或者使用 format 函数作为我猜的替代方法,但这在 0.11 及以下版本中也可用。
  • 所以你的意思是你仍然必须将变量包装在 ${} 中才能在其前面添加/附加一个字符串? @ydaetskcoR

标签: syntax terraform


【解决方案1】:

Terraform 0.12 中更改的目的是避免对 冗余 插值语法的需要,特别是避免“插值”不是字符串的东西以分配所暗示的混淆变量的值作为参数,而不是完全删除插值语法。如果您的目标是将两个字符串连接在一起,那么插值语法仍然可能是最简洁的方法,因为字符串连接是插值语法的for

通过内置函数还有其他一些替代方法,但它们中的每一个是否比插值方法更具可读性还是有争议的:

name = join("-", [var.variable_name, "vnet"])
name = format("%s-vnet", var.variable_name)

【讨论】:

    猜你喜欢
    • 2017-03-10
    • 1970-01-01
    • 2020-10-13
    • 2020-05-30
    • 2021-12-17
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    • 2016-12-07
    相关资源
    最近更新 更多