簡體   English   中英

遍歷 Terraform object 列表變量並輸出字符串值

[英]Iterating through a Terraform object list variable and outputting string value

可以在這里使用一些指導。

我有以下列表變量,其中包含許多美國州的兩個字符串值(名稱、短名稱):

variable "states" {
  type = list(object({
  name = string
  short_name = string
  }))
  description = "State List"
  default = [
  {
    name = "New Jersey"
    short_name = "nj"
  },
  {
    name = "Michigan"
    short_name = "mi"
  ]
  }

我需要遍歷此列表和 output 將“short_name”字符串的每個索引放入我的 common.tfvars 文件中的通用代碼塊中。

代碼塊看起來像這樣並且只包含字符串:

generic_code_block = [
 "Stateofnj"
 "Stateofmi"
]

我想調整此代碼塊,因此只需要編寫一行代碼,它將遍歷 short_name 字符串值的列表。

這對於未創建資源的通用代碼塊是否可行?

我想象一個類似於此的概念可以工作,但我不確定如何將它組合在一起。

generic_code_block = [
 "Stateof" + for_each = toSet(var.States.short_name) + "
]

將不勝感激任何幫助謝謝。

這可以通過一個簡單for循環來完成:

variable "states" {
  type = list(object({
    name       = string
    short_name = string
  }))
  description = "State List"
  default = [
    {
      name       = "New Jersey"
      short_name = "nj"
    },
    {
      name       = "Michigan"
      short_name = "mi"
    }
  ]
}

locals {
  generic_code_block = [
    for state in var.states: "Stateof${state.short_name}"
  ]
}

您可以這樣使用局部變量:

output "generic_code_block " {
  value = local.generic_code_block
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM