iT邦幫忙

2023 iThome 鐵人賽

DAY 2
0
DevOps

大家都在用 Terraform 實作 IaC 為什麼不將程式寫得更簡潔易讀呢?系列 第 2

如何利用 HCL 語言的撰寫 Terraform 專案的基本介紹 (Part II) - HCL 常用函式

  • 分享至 

  • xImage
  •  

以下是我在撰寫 HCL 時常會用到的函數將一一做介紹。

locals {
  list1 = ["apple", "banana"]
  list2 = ["cherry", "date"]
  concatenated_list = concat(local.list1, local.list2)
}
  • contains(list, element): 這個函數檢查列表是否包含指定的元素,如果包含則返回 true,否則返回 false。
locals {
  fruits = ["apple", "banana", "cherry"]
  has_banana = contains(local.fruits, "banana")
}
  • flatten(list): 這個函數用於將嵌套的列表(列表中包含列表)轉換為扁平的單一列表。
locals {
  nested_list = [["apple", "banana"], ["cherry", "date"]]
  flat_list = flatten(local.nested_list)
}
  • length(list): 這個函數返回列表中元素的數量。
locals {
  fruits = ["apple", "banana", "cherry"]
  num_fruits = length(local.fruits)
}
  • list(…): 這個函數用於創建一個新的列表,將傳遞給它的參數作為元素添加到列表中。
locals {
  fruit_list = list("apple", "banana", "cherry")
}
  • lookup(map, key. default): 這個函數用於查找 map 中指定鍵的值。如果找到,則返回值,否則返回預設值。
locals {
  fruit_colors = {
    "apple"  = "red",
    "banana" = "yellow"
  }
  apple_color = lookup(local.fruit_colors, "apple", "unknown")
  grape_color = lookup(local.fruit_colors, "grape", "unknown")
}
  • one(list): 這個函數檢查列表是否只包含一個元素,如果是,則返回該元素,否則返回 null。
locals {
  single_element_list = ["only"]
  multiple_elements_list = ["one", "two"]
  single_element = one(local.single_element_list)
  no_single_element = one(local.multiple_elements_list)
}

以上是一些常用到的 HCL 函數,可以幫助你在 Terraform 配置中執行各種操作,從列表操作到查找、合併等。
根據你的需求,你可以選擇適合的函數來簡化配置的處理,後面文章的範例也會大量使用到這些函式。


上一篇
如何利用 HCL 語言的撰寫 Terraform 專案的基本介紹 (Part I) - 深入淺出 HCL
下一篇
如何利用 HCL 語言的撰寫 Terraform 專案的基本介紹 (Part III) - 模組化
系列文
大家都在用 Terraform 實作 IaC 為什麼不將程式寫得更簡潔易讀呢?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言