尝试使用terraform控制台,新功能。 我用tfstate和我的项目运行' terraform console'。 我可以使用常规插值systax获取变量值,数据和资源。但是,模块很难破解,我无法正确使用它 - 我试过:module.name.attribute并且它不知道,在网上使用控制台的例子不多: - /
感谢您的期待。
答案 0 :(得分:3)
虽然文档中没有明确说明,但似乎我们不能在模块中引用局部变量,我们只能看到模块的输出。
以下是一个例子:
$ tree
.
├── foo
│ └── bar.tf
├── main.tf
└── terraform.tfstate
1 directory, 3 files
main.tf
provider "null" {}
module "foo" {
source = "./foo"
}
富/ bar.tf
resource "null_resource" "bar" {}
output "bar_id" {
value = "${null_resource.bar.id}"
}
terraform.tfstate
{
"version": 3,
"terraform_version": "0.8.4",
"serial": 4,
"lineage": "9e66cc40-5dfa-4c4e-929e-bc02fa7db57e",
"modules": [
{
"path": [
"root"
],
"outputs": {},
"resources": {},
"depends_on": []
},
{
"path": [
"root",
"foo"
],
"outputs": {
"bar_id": {
"sensitive": false,
"type": "string",
"value": "1810628649389143335"
}
},
"resources": {
"null_resource.bar": {
"type": "null_resource",
"depends_on": [],
"primary": {
"id": "1810628649389143335",
"attributes": {
"id": "1810628649389143335"
},
"meta": {},
"tainted": false
},
"deposed": [],
"provider": ""
}
},
"depends_on": []
},
{
"path": [
"root",
"hoge"
],
"outputs": {},
"resources": {},
"depends_on": []
}
]
}
可以称为module.foo.bar_id
:
$ terraform console
> module.foo.bar_id
1810628649389143335
其他人不行:
$ terraform console
> null_resource.bar.id
Resource 'null_resource.bar' not found for variable 'null_resource.bar.id'
> module.foo.null_resource.bar.id
Couldn't find output "null_resource.bar.id" for module var: module.foo.null_resource.bar.id