gpt4 book ai didi

terraform - terraform 是否允许我们覆盖变量

转载 作者:行者123 更新时间:2023-12-04 01:51:34 25 4
gpt4 key购买 nike

terraform 是否提供这样的功能来覆盖变量值?假设我已经声明了下面给出的两个变量。

variable "foo" {}
variable "bar" { default = "false"}
foo是强制性的, bar分配有默认值 .有没有 resoruce在 terraform 中可用,我可以在其中重新分配或覆盖 bar值(value)?我在 resource 中问这个问题看法。我知道我可以使用 terraform-modules 来做到这一点.

我试过这种用法 null_resource但没有得到预期的结果。它仍然返回默认值。
resource "null_resource" "this" {
provisioner "local-exec" {
command = "echo ${var.env} > ${var.newvar}"
}
}

我也想运行 curl命令属性 .我需要使用“解释器”吗?如果是这样,那么它的值(value)是什么?
interpreter = ["shell","?"]我应该传递哪些值来执行 curl local-exec 中的命令供应商。

bash 脚本
function check_efs() {
curl -ls https://elasticfilesystem.us-east-1.amazonsaws.com
if [ $? -eq 0 ]; then
output=1
else:
output=0
}

function produce_output() {
value=$(output)

jq -n \
--arg is_efs_exist "$value" \
'{"is_efs_exist":$is_efs_exist}'
}

check_efs
produce_output

最佳答案

[回答关于覆盖的第一个问题......]

有几种方法可以解决这个问题。我不知道您的确切用例,因此您的里程可能会有所不同。

  • 您可以导出具有您想要使用的值的环境变量。例如,您可以设置 bar var 为 export TF_VAR_bar=newvalue 的新值然后运行 ​​terraform在那个 session 中。或者将它们组合在同一行:TF_VAR_bar=newvalue terraform apply
    引用:https://www.terraform.io/docs/configuration/environment-variables.html
  • 使用覆盖文件。例如。:override.tf可能包含 variable "bar" { default = "newvalue"}或任何其他 TF 代码。它是最后加载的。

    引用:https://www.terraform.io/docs/configuration/override.html
  • 将您的代码放入 TF 模块,然后您可以调用该模块并传递 bar 的值你想要的。如果您继续重复使用相同的代码并希望使用不同的参数提供某些资源集的不同实例,这将特别有用。

    引用:https://www.terraform.io/docs/configuration/modules.html

  • !

    关于terraform - terraform 是否允许我们覆盖变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52774464/

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