【发布时间】:2017-01-07 18:20:58
【问题描述】:
我的 terraform 项目布局类似于:
[project root dir]
main.tf
- my_module [directory]:
variables.tf
my_instance.tf
在variables.tf 我有这样的东西:
variable "foo-ami" {
default = "ami-12345"
description = "Super awesome AMI"
}
在my_instance.tf 我这样引用它:
resource "aws_instance" "my_instance" {
ami = "${var.foo-ami}"
...
}
如果我想从命令行覆盖这个变量,文档here 似乎建议我应该能够从顶层 (main.tf) 位置运行以下命令:
terraform plan -var 'foo-ami=ami-987654'
但是,变量 switch 似乎没有被选中。旧值保持不变。此外,如果我删除默认设置,我会从 terraform 收到一个错误,说它没有设置,所以很明显 -var 开关没有被选中。
想法?
TIA
【问题讨论】:
-
除了@minamijoyo 的回答,我想为 Terraform 0.7.x 及更高版本添加,您必须对变量使用 HCL 语法。因此,您想要
-var 'foo-ami="ami-987654"'之类的东西。也就是说,将值用双引号括起来,使其成为有效的 HCL 字符串。
标签: terraform