模块内的引用变量

Reference Variable inside Module

我试图引用一个模块内声明的变量来更新同一模块中的另一个变量,但我找不到关于如何引用该变量的指南。

这是我的代码片段

module "cluster" {
  source = "..."

  var1 = value1    # directly passing value
  var2 = module.cluster.var1 # I need to update this variable value based on value of var1

我在 terraform 计划期间遇到以下错误

Terraform v1.0.11
on linux_amd64
Configuring remote state backend...
Initializing Terraform configuration...

 Error: Unsupported attribute
│ 
│   on main.tf line 04, in module "cluster":
│   04:       var2 = module.cluster.var1
│     ├────────────────
│     │ module.cluster is a object, known only after apply
│ 
│ This object does not have an attribute named "var1".

我也尝试过使用如下所示的 local.var1 进行引用

module "cluster" {
  source = "..."

  var1 = value1    # directly passing value
  var2 = local.var1 # I need to update this variable value based on value of var1

然后我遇到以下错误

Terraform v1.0.11
on linux_amd64
Configuring remote state backend...
Initializing Terraform configuration...
╷
│ Error: Reference to undeclared local value
│ 
│   on main.tf line 04, in module "cluster":
│   04:       var2 = local.var1
│ 
│ A local value with the name "var1" has not been declared.
╵

任何线索都会有所帮助。

此致

你的第二次尝试,使用局部变量,是在正确的轨道上,但你实际上必须 declare the local variable:

locals {
   var1 = value1
}

module "cluster" {
  source = "..."

  var1 = local.var1
  var2 = local.var1