【问题标题】:Pulling env variables from JSON file and passing the variable to terraform从 JSON 文件中提取环境变量并将变量传递给 terraform
【发布时间】:2019-06-30 23:47:11
【问题描述】:

我是 terraform 的新手,我正在尝试使用 Terraform 在 AWS 中部署 lambda 函数并将环境变量从 JSON 文件传递​​到 terraform。我无法在 main.tf 或 tfvars 文件中设置这些值,因为这些 env 变量对于部署的每个 lambda 都是不同的。

我尝试使用 jq 从 JSON 中提取值并将它们放入一个文件中,然后将它们传递给变量,但是当我运行 terraform init 命令时出现错误。

以下是这些值在 JSON 文件中的外观。

"environment": {
    "value1": "aa",
    "value2": "aa",
    "value3": "aa",
    "value4": "aa",
    "value5": "aa",
    "value6": "aa"
  },

在我的 main.tf 中,我将环境部分设置为这样,因此可以通过这些值。我在 variable.tf 文件中设置了 envVars 变量,然后在运行 terraform init 和 terraform apply 命令时将其传递。

environment {
   variables {
       "${var.envVars}"
      }
    }

我希望发生的是,上面的值将以所需的格式设置在 terraform 文件中,以便 terraform 可以读取它。

environment {
   variables {
     value1 = "",
     value2 = "",
     value3 = "",
     value4 = "",
     value5 = "",
     value6 = ""
  }
}

【问题讨论】:

    标签: terraform


    【解决方案1】:

    考虑使用map 类型来管理这些值。

    variable "envVars" {}
    variable "environment" {
      type = "map"
    
      default = {
        dev = "<value_1>"
        uat = "<value_2>"
        prod = "<value_3>"
      }
    }
    

    因此,在您的 tf 代码中,您可以轻松引用为 "${var.environment[var.envVars]}"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-29
      • 2019-05-20
      • 1970-01-01
      • 2021-09-05
      • 2020-03-27
      • 2017-03-30
      • 2018-08-19
      • 1970-01-01
      相关资源
      最近更新 更多