【问题标题】:Get local variable in terraform console在 terraform 控制台中获取局部变量
【发布时间】:2021-12-02 14:15:10
【问题描述】:

有没有办法在 Terraform 控制台中获取局部变量?

> local.name
unknown values referenced, can't compute value

好像 Terraform 控制台只允许检查输入变量和模块输出变量。

> var.in
2

> module.abc.out
3

配置文件示例:

# main.tf

locals {
  name = 1
}

variable "in" {
  value = 2
}

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

# path/to/module/main.tf

output "out" {
  value = 3
}

【问题讨论】:

  • 本地值从哪里设置的?请详细说明。
  • @mithilesh.kunal 编辑了问题以提供更多上下文 ??????♂️

标签: terraform


【解决方案1】:

不幸的是,这在 Terraform v0.11.x 中似乎是不可能的,但会在 v0.12 中,如本问题单中所述:

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

HTH!

【讨论】:

    【解决方案2】:

    这在最近的 Terraform 版本中应该可以工作。

    $ terraform version
    Terraform v1.0.5
    
    $ terraform console
    > local.name
    1
    > var.in
    2
    

    经过测试的'main.tf'

    locals {
      name = 1
    }
    
    variable in {
      default = 2
    }
    

    【讨论】:

      【解决方案3】:

      今天(2021 年 12 月)在 terraform 控制台上没有REPL

      但是有一个strongly upvoted request for that, see here on github。如果你觉得合适,你也可以去那里投票。

      对我来说,我只是想从列表中获取一些项目。

      对于第一项,我可以使用element 函数来执行此操作。

      element(["apple", "banana", "pine apple", "grape", "strawberry"], 0)
      

      我找回了“苹果”。

      如果想要最后一项,我必须使用length 函数执行以下操作

      element(["apple", "banana", "pine apple", "grape", "strawberry"], 
      length(["apple", "banana", "pine apple", "grape", "strawberry"])-1)
      

      我回来了“草莓”。

      由于这里有代码重复,我一直在寻找这样的东西,定义一个变量并使用它。

      var fruits = ["apple", "banana", "pine apple", "grape", "strawberry"]
      element(fruits, length(fruits)-1)
      

      这是行不通的。

      所以我最终在名为 main.tf 的文件中定义了一个变量,如下所示。

      variable fruits {
        default = ["apple", "banana", "pine apple", "grape", "strawberry"]
      }
      

      启动 terraform 控制台。

      现在我可以如下使用它了。

      element(var.fruits, length(var.fruits)-1)
      

      【讨论】:

        猜你喜欢
        • 2018-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-19
        • 2019-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多