gpt4 book ai didi

地形:计数 == 真

转载 作者:行者123 更新时间:2023-12-01 22:00:23 28 4
gpt4 key购买 nike

我之前在我的 TF 代码中使用过这个:

count   = "${var.whatever == "true" ? 1 : 0}"

这非常适合我想要使用的东西。但是,我正在考虑如何最好地使用类似于说的东西,如果 var.whatever 等于 true,则计数等于 length(var .whatever)

这行得通吗?

count = "${var.whatever == "true"? ${length(var.whatever) : 0}"

只是我对 TF 的印象一直是不能嵌套插值。

另外,这让我想到了另一个有趣的问题。你们用什么来测试语法?我不是要检查 TF 代码,我的意思是运行代码来测试这样的东西?我不想只是部署到开发,只是为了测试我的 TF 代码的输出。我想知道是否有类似 shell 的东西,我可以从字面上测试这些东西,因为它是 bash 或其他东西。有什么想法吗?

最佳答案

您最初的想法行不通,因为如果 var.whatever 是一个列表,那么它就不可能同时是一个字符串(即 = "true")。

不过,好消息是可以在通用三元运算符内部使用插值。

所以你可以有这样的东西:

count = "${var.bool == "true" ? length(var.whatever) : 0}"

在将插值放入最终代码之前测试插值的一个好方法是使用 Terraform's console feature (即 terraform 控制台)。

在一个文件中设置你的 vars,比如 console.tf 在一个没有任何其他 TF 代码的目录中。

variable "whatever" {
type = "list"
default = ["1", "2", "foo", "bar" ]
}

variable "bool" {
default = "true"
}

现在从命令行运行 terraform console

$ terraform console
> var.whatever
[
"1",
"2",
"foo",
"bar",
]
> length(var.whatever)
4
> "${var.bool == "true" ? length(var.whatever) : 0}"
4
> exit
$

您可以看到 Terraform 执行插值,然后对这些评估值运行三元运算符。

关于地形:计数 == 真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53667327/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com