通过 Terraform 在映射中通过命令行传递变量

时间:2021-06-16 14:53:52

标签: terraform

我正在配置一个作业来部署我的 terraform 基础设施,我需要通过命令行传递一个包含在映射中的 var。像这样:

my.tfvars:

nodegroups = {
    platform = [
         {
           "nodeversion" = "1.0" (Var to use)
           "backup" = false,
         }
    ]
}

然后我必须通过命令行动态传递这个 var 以在 jenkins 工作中使用,类似这样:

terraform apply -auto-approve -var-file=project.tfvars -var={nodegroup.platform.nodeversion=1.0}

有可能吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

这样的事情应该是可能的。

但根据Terraform's Variables On The Command Line documentation,它看起来像这样。

terraform apply -auto-approve -var-file=project.tfvars -var='nodegroups={"platform": [{"nodeversion": "1.0"}]}'

但是,我强烈建议您将 .tfvars 文件用于复杂的输入值。在上面的情况下,您实际上只提供了一个变量值。真的有必要在对象内部的数组中包含一个对象吗?

相关问题