Spec-Zone.ru › OpenTofu 1.9

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

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

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

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

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

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

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

Spec-Zone.ru

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