Terraform 将变量乘以另一个变量,然后将其格式化为字符串
我可以用一个变量乘以地形中的另一个变量吗 这似乎有效:Terraform 将变量乘以另一个变量,然后将其格式化为字符串,terraform,Terraform,我可以用一个变量乘以地形中的另一个变量吗 这似乎有效: count = "${var.var1} * ${var.var2}" 然后我试着: count = "${format("int","${var.var1}" * "${var.var2}")}" 当var1=0和var2=0时 但这会引发以下错误: 无法将“int%!(EXTRA int=0)”解析为整数 实际上,您需要为要插入的整数指定占位符。使用文档中的printf样式语法 因此,在您的情况下,您可以执行以下操作: varia
count = "${var.var1} * ${var.var2}"
然后我试着:
count = "${format("int","${var.var1}" * "${var.var2}")}"
当var1=0和var2=0时
但这会引发以下错误:
无法将“int%!(EXTRA int=0)”解析为整数
实际上,您需要为要插入的整数指定占位符。使用文档中的
printf
样式语法
因此,在您的情况下,您可以执行以下操作:
variable "var1" {
default = 1
}
variable "var2" {
default = 2
}
output "example" {
value = "${format("int-%d", var.var1 * var.var2)}"
}
这将输出:
example = int-2
example = int-420
运行$TF\u VAR\u var1=10 TF\u VAR\u var2=42 terraform apply
将输出:
example = int-2
example = int-420
在您的示例中,将两个数字相乘的最简单方法如下:
count = "${var.var1 * var.var2}"
请注意,乘法运算符位于表达式分隔符的内部,因为它是表达式的一部分。如果将*
放在外部,则它将被视为文本字符串,产生类似“2*2”
的结果,而不是“4”
要生成类似int-4
的字符串(即在前面放置前缀),请将该前缀放置在分隔符之外:
example = "int-${var.var1 * var.var2}"
引号内的任何${
..}
序列都将替换为分隔符内表达式的求值结果。那些分隔符之外的任何东西都是按字面意思理解的