带引号和不带引号的变量样式有什么区别?

时间:2020-06-08 05:57:50

标签: terraform

以下两种在terraform中的样式有什么区别,是否相同?

vpc_id      = aws_vpc.default.id

对比

vpc_id      = "${aws_vpc.default.id}"

1 个答案:

答案 0 :(得分:4)

第一个是HCL2表达式,第二个是插值。

在terraform v.0.12.x之前使用了插值法,这就是为什么您仍然可以在Internet上找到这种表示法的原因。

如果具有v0.12.x,请使用"${aws_vpc.default.ip}"表示法并运行命令terraform validate,您将收到警告:

警告:不建议仅使用插值表达式

[...]

Terraform 0.11和更早版本要求通过插值语法提供所有非常数表达式,但是现在不建议使用此模式。要使该警告静音,请从该表达式的开头删除“ $ {序列,从}序列开始,仅保留内部表达式。

当模板包含多个插值序列或文字字符串和插值的混合时,模板插值语法仍用于根据表达式构造字符串。此弃用仅适用于完全由单个插值序列组成的模板。