Spec-Zone.ru › OpenTofu 1.10

Локальные значения

Локальное значение присваивает имя выражению, чтобы можно было использовать это имя в модуле несколько раз вместо повторения выражения.

Если вы знакомы с традиционными языками программирования, будет полезно сравнить модули с определениями функций:

  • Входные переменные аналогичны аргументам функции.
  • Выходные значения аналогичны возвращаемым значениям функции.
  • Локальные значения аналогичны временным локальным переменным функции.
Примечание

Для краткости локальные значения часто называют просто «локальными», если их смысл ясен из контекста.

Объявление локального значения​

Набор связанных локальных значений можно объявить вместе в одном блоке 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>.

Примечание

Локальные значения создаются блоком locals (во множественном числе), но на них ссылаются как на атрибуты объекта с именем local (в единственном числе). При ссылке на локальное значение не добавляйте «s»!

Блок кода
resource "aws_instance" "example" {
  # ...

  tags = local.common_tags
}

К локальному значению можно обращаться только в выражениях внутри модуля, в котором оно было объявлено.

Когда использовать локальные значения​

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

Используйте локальные значения умеренно — в случаях, когда одно значение или результат используется во многих местах и это значение, вероятно, будет изменено в будущем. Возможность легко изменить значение в одном центральном месте — главное преимущество локальных значений.

Copyright (c) The OpenTofu Authors
Copyright (c) 2014 HashiCorp, Inc.
Mozilla Public License, version 2.0
https://opentofu.org/docs/v1.10/language/values/locals/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API