gpt4 book ai didi

terraform - 如何使用 Consul 中定义的默认值在 Terraform 中定义可选变量

转载 作者:行者123 更新时间:2023-12-04 17:30:32 31 4
gpt4 key购买 nike

我有一个 Terraform 脚本,其中包含从 Consul 填充的一些变量。我想在两种不同的场景中使用这个脚本:

  • 场景 1. 使用 Consul 的默认值一切正常。
  • 场景 2. 我需要覆盖一些变量。

  • 我检查了 Terraform 文档并注意到我不能使用 Consul 中定义的变量作为另一个变量的默认值。所以我最终采用了以下解决方法:
    ## vars.tf
    ## emulating undefined value using "null" string
    variable "my_optional_variable" { default = "null" }

    ## main.tf
    my_optional_variable = "${var.my_optional_variable == "null" ? data.consul_keys.my_optional_variable : var.my_optional_variable}"

    有人可以告诉我更好的方法吗? 如何避免使用“空”字符串进行黑客攻击?

    谢谢

    最佳答案

    另一种选择是 coalesce ,它适用于空字符串,因此比您的 "null" 字符串略好。

    鉴于您的场景或具有两个变量/数据源的类似案例

    variable "my_default_value" {
    default = "CentOS 7"
    }
    variable "my_optional_variable" {
    default = ""
    }

    您可以从给定的参数中获取“第一个非空值。必须至少提供两个参数”。
    data "openstack_images_image_v2" "bastion_image" {
    name = "${coalesce(var.my_optional_variable, var.my_default_value)}"
    }

    关于terraform - 如何使用 Consul 中定义的默认值在 Terraform 中定义可选变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50468798/

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