我正在使用Terraform来构建我们的AWS基础设施项目。我需要能够将多个变量输出到一个文件,然后将该文件加载回另一个Terraform脚本。
现在,我可以输出变量,但它们的值不带引号:
variable = value
但是,当将变量文件加载到Terraform中时,它希望所有值都用引号引起来,如下所示:
variable = "value"
所以我不明白为什么地狱Terraform不会首先以这种方式导出变量。
有什么办法可以做到这一点,而无需我做更多的工作吗?
编辑:我正在使用Terraform v0.11.13,并且由于安全限制而无法升级
答案 0 :(得分:0)
以JSON输出并使用JQ转换为您想要的内容。
terraform output -json
output "hogehoge" {
value = "hogehoge"
}
$ terraform apply
Outputs:
hogehoge = hogehoge
$ terraform output -json
{
"hogehoge": {
"sensitive": false,
"type": "string",
"value": "hogehoge"
}
}
但是,正如@ydaetskcoR所说,为什么不使用data.terraform_remote_state
?