相关疑难解决方法(0)

为什么我的 Terraform 输出在模块中不起作用?

我有以下简单的设置:

~$ 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"
}
Run Code Online (Sandbox Code Playgroud)

然后我运行:

~$ terraform get
~$ terraform apply
Run Code Online (Sandbox Code Playgroud)

我希望在输出中看到 world_module_says,但我没有,我只看到 root_module_says。这真的很令人困惑,为什么?

如果有帮助:

~$ terraform --version
v0.10.8
Run Code Online (Sandbox Code Playgroud)

terraform

8
推荐指数
3
解决办法
7146
查看次数

运行 terraform 输出时无法获取输出

我正在使用模块。这是我的文件结构 - Provisioner 和模块是不同的文件夹。堆栈中的 main.tf 调用模块。

  > provisioner 
        >stack
           |--main.tf
           |--variables.tf
  > module (folder)  
    |--aks
    |     |--main.tf
    |     |--outputs.tf
    |     |--variables.tf
    |
    |--postgresql
    |     |--main.tf
    |     |--outputs.tf
    |     |--variables.tf
Run Code Online (Sandbox Code Playgroud)

当我在 provsioner 目录中运行“terraform apply”命令时,预计会在应用完成后返回输出。我没有得到输出。当我运行 'terraform output' 时,我得到-“状态文件要么没有定义输出,要么所有定义的输出都是空的。请在您的配置中使用 output 关键字定义一个输出并运行 terraform refresh 使其可用。如果您正在使用插值,请确认插值不为空

我想知道为什么会这样?

terraform terraform-provider-azure terraform0.12+

2
推荐指数
3
解决办法
3548
查看次数