【问题标题】:set input variables in resource terraform在资源 terraform 中设置输入变量
【发布时间】:2022-06-22 22:24:30
【问题描述】:

我正在使用以下资源

resource "aws_cloudwatch_metric_alarm" "example" {
  for_each                  = toset(var.myenvironments_map[var.environment])

...

  db_instance_identifier_key = each.key

  dimensions = {
   DBInstanceIdentifier = db_instance_identifier
  }
} 

并想做类似以下的事情

locals {
  `db_instance_identifier` = var.db_instance_identifier_key == "myKey" ? 
  "${avariable}" : "${aMap[var.db_instance_identifier_key].identifier}"
}

variable "db_instance_identifier_key" {
type = string
}

但是当我运行terraform plan 时,我得到:“根模块输入变量“db_instance_identifier_key”未设置,并且 │ 没有默认值。使用 -var 或 -var-file 命令行参数 │ 为这个变量提供一个值。”

基本上我想根据 for_each 中的each.key 计算db_instance_identifier

【问题讨论】:

    标签: terraform


    【解决方案1】:

    这是一个局部变量声明:

    locals {
      `db_instance_identifier` = var.db_instance_identifier_key == "myKey" ? 
      "${avariable}" : "${aMap[var.db_instance_identifier_key].identifier}"
    }
    

    这是一个模块输入变量声明:

    variable "db_instance_identifier_key" {
    type = string
    }
    

    你需要使用其中一个,而不是两者都使用。

    【讨论】:

      猜你喜欢
      • 2020-12-08
      • 2021-02-18
      • 2021-12-28
      • 2022-10-26
      • 1970-01-01
      • 1970-01-01
      • 2022-10-13
      • 2022-01-13
      • 1970-01-01
      相关资源
      最近更新 更多