地形插值0.12

时间:2019-09-03 14:32:28

标签: terraform hcl

据此:

https://www.hashicorp.com/blog/terraform-0-12-template-syntax

Terraform正在将用于字符串(${})的插值语法扩展到循环和条件(这意味着插值语法对于字符串仍然有效)。

但是,如果我在terraform 0.12upgrade脚本上运行.tf,则会从以下位置更改输出文件中的语法:

output "OutputName" {
    value = "${module.module_name.resource_name}"
}

对此:

output "OutputName" {
    value = module.module_name.resource_name
}

为什么要重写我的插值语法?

2 个答案:

答案 0 :(得分:0)

这是因为它将更新您的代码以使其更符合HCL2。在这种情况下,您要在配置中引用一个值,这可以通过使用HCL2表达式来实现。因此,升级工具正在用HCL2表达式替换旧插值。

您可以在此链接上找到有关HCL2表达的更多信息:

https://www.terraform.io/docs/configuration/expressions.html

答案 1 :(得分:0)

您正确的是,插值语法在Terraform 0.12中仍然是有效。但是,除非您尝试将多个值组合成一个字符串,否则它现在是不必要的。因此,升级工具会自动重写,以使用最简单的方式来表达相同的想法。

如果由于某些原因要保留插值标记,则可以忽略terraform 0.12upgrade所做的更改,并按原样保留现有配置。但是,我建议您接受更改,因为多余的引号和内插标记不会添加任何其他信息或更改任何行为,因此是完全多余的。