Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Terraform 12变量和字符串连接最佳实践_Terraform - Fatal编程技术网

Terraform 12变量和字符串连接最佳实践

Terraform 12变量和字符串连接最佳实践,terraform,Terraform,我正在从terraform 0.11更新到0.12,我想知道在我的.tf文件中连接字符串和变量的“最佳实践”是什么 新语法非常直接地调整变量: # V0.11 foo = "${var.bar}" # V0.12 foo = var.bar 但我该如何处理这种情况呢 foo = "${var.bar}-a-string" 我应该保留这个语法还是把它改成: foo = join("-", [${var.bar}, "a", "string"]) 似乎认为我们应该保留字符串连接的插值语法,即

我正在从terraform 0.11更新到0.12,我想知道在我的
.tf
文件中连接字符串和变量的“最佳实践”是什么

新语法非常直接地调整变量:

# V0.11
foo = "${var.bar}"

# V0.12
foo = var.bar
但我该如何处理这种情况呢

foo = "${var.bar}-a-string"
我应该保留这个语法还是把它改成:

foo = join("-", [${var.bar}, "a", "string"])

似乎认为我们应该保留字符串连接的插值语法,即使它在新terraform版本中已被弃用。

要将变量与字符串连接起来,请使用此语法而不是join()

foo=“string-${var.bar}-a-string”

但如果不想使用变量进行字符串连接,可以使用以下语法:


foo=var.bar

调用函数插入简单字符串在任何语言中都不是最佳实践。前面列出的用法将比后面的更简单,并且与您在其他类似的声明性DSL(Puppet、Jenkins管道等)中看到的用法相同。您列出的两种用法都不推荐使用,因为前者是有文档记录的用法,后者是实现相同结果的间接方法。0.12中肯定不推荐使用字符串插值。它只是在使用变量本身时变得不必要了-即。您现在可以执行
some_prop=var.value
,而不必执行
some_prop=var.value
。感谢您的反馈,在这种情况下,将保留字符串插值!