Змінні

Вхідні

https://developer.hashicorp.com/terraform/language/values/variables

Вихідні

https://developer.hashicorp.com/terraform/language/values/outputs

Локальні

https://developer.hashicorp.com/terraform/language/values/locals

Локальне значення присвоює ім'я виразу, тому ви можете використовувати ім'я кілька разів у модулі замість того, щоб повторювати вираз.

Якщо ви знайомі з традиційними мовами програмування, вам буде корисно порівняти модулі Terraform з визначеннями функцій:

  • Вхідні змінні схожі на аргументи функції
  • Вихідні значення схожі на значення, що повертаються функцією
  • Локальні значення - це тимчасові локальні змінні функції

Оголошення локального значення

Набір пов'язаних локальних значень можна оголосити разом в одному блоці locals:

locals {
  service_name = "forum"
  owner        = "Community Team"
}

Вирази в локальних значеннях не обмежуються буквальними константами; вони також можуть посилатися на інші значення в модулі, щоб перетворити або об'єднати їх, включаючи змінні, атрибути ресурсів або інші локальні значення:

locals {
  # Ids for multiple sets of EC2 instances, merged together
  instance_ids = concat(aws_instance.blue.*.id, aws_instance.green.*.id)
}

locals {
  # Common tags to be assigned to all resources
  common_tags = {
    Service = local.service_name
    Owner   = local.owner
  }
}

Використання локальних значень

Після оголошення локального значення ви можете посилатися на нього у виразах як на local.<NAME>.

[!TIP] Локальні значення створюються блоком locals (множина), але ви посилаєтеся на них як на атрибути об'єкта з іменем local (однина). Переконайтеся, що при посиланні на локальне значення ви не використовуєте "s"!

resource "aws_instance" "example" {
  # ...

  tags = local.common_tags
}

До локального значення можна отримати доступ у виразах тільки в тому модулі, де воно було оголошене.

Коли слід використовувати локальні значення

Локальні значення можуть бути корисними для уникнення багаторазового повторення тих самих значень або виразів у конфігурації, але при надмірному використанні вони також можуть ускладнити читання конфігурації майбутніми супровідниками, оскільки приховують реальні значення, що використовуються.

Використовуйте локальні значення лише помірковано, у ситуаціях, коли одне значення або результат використовується у багатьох місцях, і це значення, ймовірно, буде змінено у майбутньому. Можливість легко змінити значення у центральному місці є ключовою перевагою локальних значень.

results matching ""

    No results matching ""