在Terraform控制台中获取局部变量

Ten*_*sho 3 terraform

有什么方法可以在Terraform控制台中获取局部变量吗?

> local.name
unknown values referenced, can't compute value
Run Code Online (Sandbox Code Playgroud)

似乎Terraform控制台仅允许检查输入变量和模块输出变量。

> var.in
2

> module.abc.out
3
Run Code Online (Sandbox Code Playgroud)

配置文件示例:

# main.tf

locals {
  name = 1
}

variable "in" {
  value = 2
}

module "abc" {
  source "path/to/module"
}

# path/to/module/main.tf

output "out" {
  value = 3
}
Run Code Online (Sandbox Code Playgroud)

nob*_*bar 20

这应该适用于最近的 Terraform 版本。

$ terraform version
Terraform v1.0.5

$ terraform console
> local.name
1
> var.in
2
Run Code Online (Sandbox Code Playgroud)

例如,它可以使用 Bash here string编写脚本(非交互式) 。

$ terraform version
Terraform v1.0.5

$ terraform console
> local.name
1
> var.in
2
Run Code Online (Sandbox Code Playgroud)

这对于自定义工具可能非常有用,甚至可能非常复杂。

$ terraform console <<<local.name
1
Run Code Online (Sandbox Code Playgroud)

测试的'main.tf'

locals {
  name = 1
  stack = terraform.workspace
  credentials={ 
    default: {username:"user1234",password:"1234",endpoint:"http://localhost"}
  }
}

variable in {
  default = 2
}
Run Code Online (Sandbox Code Playgroud)

  • 为什么“terraform console”没有列出所有已知数据的功能? (9认同)

KJH*_*KJH 5

不幸的是,看起来这在Terraform v0.11.x中是不可能的,但将在v0.12中出现,如本发行通知中所述:

https://github.com/hashicorp/terraform/issues/18413

HTH!