Почему мой вывод Terraform не работает в модуле? - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть следующие простые настройки:

~$ tree
.
├── main.tf
└── modules
    └── world
        └── main.tf
~$ cat main.tf
output "root_module_says" {
    value = "hello from root module"
}
module "world" {
    source = "modules/world"
}
~$ cat modules/world/main.tf
output "world_module_says" {
    value = "hello from world module"
}

Затем я запускаю:

~$ terraform get
~$ terraform apply

Я ожидаю увидеть world_module_says в выходных данных, но я не вижу, я вижу только root_module_says,Это действительно сбивает с толку, почему?

Если это поможет:

~$ terraform --version
v0.10.8

1 Ответ

0 голосов
/ 25 сентября 2018

Terraform по умолчанию показывает только выходные данные root https://www.terraform.io/docs/commands/output.html

Вы можете получить выходные данные из модуля world с помощью:

terraform output -module=world

Я думаю, что логика здесь в том, что выходные данныеиз модуля будет потребляться пользователем root, и если вы действительно нуждаетесь в выводе, вы бы вывели его также и в root, так что main.tf может содержать это:

output "root_module_says" {
    value = "hello from root module"
}
output "world_module_says" {
    value = "${module.world.world_module_says}"
}
module "world" {
    source = "modules/world"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...