gpt4 book ai didi

Terraform:如何从插值中获取 bool 值?

转载 作者:行者123 更新时间:2023-12-02 22:45:58 25 4
gpt4 key购买 nike

我想对 prevent_destroy 元参数使用插值

当我编码时

lifecycle {
# never destroy the IP address of the production stage,
prevent_destroy = "${var.stage_name == "global" ? true : false }"
}

我明白

* cannot parse 'prevent_destroy' as bool: strconv.ParseBool: parsing "${var.stage_name == \"global\" ? true : false }": invalid syntax

等效误差

lifecycle {
prevent_destroy = "${var.stage_name == "global" ? 1 : 0 }"
}

当我定义本地时定义

locals  {
booltest = "${var.stage_name == "global" ? true : false }"
}

好像是经过的,但是指的是本地

lifecycle {
prevent_destroy = "${var.booltest}"
}

给我一​​个

* cannot parse 'prevent_destroy' as bool: strconv.ParseBool: parsing "${var.booltest}": invalid syntax

(也尝试过 0 和 1)

如何编码?我的版本是 Terraform v0.11.10

最佳答案

不幸的是,生命周期属性不支持插值:

https://github.com/hashicorp/terraform/issues/3116 https://github.com/hashicorp/terraform/issues/17294

但是,使用 count 您可以解决此问题。大致:

resource "aws_instance" "indestructible" {
count = "${var.prevent_destroy ? "1" : "0"}"
lifecycle {
prevent_destroy = "true"
}
...
}

resource "aws_instance" "destructible" {
count = "${var.prevent_destroy ? "0" : "1"}"
lifecycle {
prevent_destroy = "false"
}

...
}

就个人而言,我会在环境之间使用相同的 prevent_destroy 设置,并在需要时显式销毁它们。

关于Terraform:如何从插值中获取 bool 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53727357/

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