CertMaster

🏗️ Built-in Functions & Expressions

Строковые, числовые, коллекционные, кодирующие функции и ограничения типов

Terraform Associate · TF-Associate · ⏱️ 22 min · ❓ 4 вопр.

🔧 String Functions

`format("Hello, %s!", var.name)` — интерполяция строк. `tostring()`, `lower()`, `upper()`, `trimspace()`, `replace()`, `split()`, `join()`. `substr(str, offset, length)` — подстрока. Интерполяция строк в Terraform: `"${var.env}-server"`.

📋 Collection Functions

`length(list)` — количество элементов. `toset()` — преобразование list в set. `tolist()` — преобразование set в list. `flatten([[a,b],[c]])` → `[a,b,c]`. `distinct()` — удаление дубликатов. `merge(map1, map2)` — объединение map-ов. `keys()`, `values()` — элементы map. `lookup(map, key, default)` — безопасный поиск.

🔢 Numeric & Type Functions

`max(a,b,c)`, `min(a,b,c)`, `abs(n)`, `ceil(n)`, `floor(n)`. `tonumber()`, `tobool()`. Type constraints: `string`, `number`, `bool`, `list(type)`, `set(type)`, `map(type)`, `object({key=type})`, `tuple([type,...])`. `any` — любой тип.

🧩 Conditional & Dynamic Expressions

Тернарный оператор: `condition ? true_val : false_val`. For expression: `[for s in var.list : upper(s)]`. Map for: `{for k, v in var.map : k => v * 2}`. Комбинация `for_each` + `for`. Splat operator: `aws_instance.web[*].id` — получение атрибута из list.
💡 Ключевые моменты
📋 Пример кода
# String functions
locals {
  env     = "production"
  prefix  = format("%s-%s", var.project, local.env)
  tags    = join(", ", ["web", "api", "db"])
  parts   = split("-", "us-east-1")  # ["us","east","1"]
}

# Collection functions
variable "instance_names" {
  default = ["web", "api", "api", "db"]
}

locals {
  unique_names = toset(var.instance_names)  # {"api","db","web"}
  upper_names  = [for n in var.instance_names : upper(n)]
  name_map     = {for n in toset(var.instance_names) : n => "t3.micro"}
}

# Conditional
locals {
  instance_type = var.env == "prod" ? "t3.large" : "t3.micro"
}

# Lookup with default
locals {
  ami = lookup(var.ami_map, var.region, "ami-default")
🎯 Советы для экзамена
⚠️ Частые ошибки
🧠 Для запоминания: "SCNF" = String (format/join/split), Collection (merge/flatten/toset), Numeric (max/min/ceil), For-expression — 4 основные категории функций Terraform

Проверьте себя по теме «Built-in Functions & Expressions»

Бесплатные интерактивные тесты, пробный экзамен и полные уроки — на платформе CertMaster.

Начать бесплатно →