Spec-Zone.ru › OpenTofu 1.11

Эфемерные ресурсы

Примечание

Эфемерные ресурсы можно использовать только в OpenTofu версии 1.11 и выше.

Блок ephemeral определяет временное значение, которое OpenTofu не будет сохранять в состоянии или плане. Этот блок работает только с провайдерами, которые уже предоставляют такую возможность, и не предназначен для использования в качестве прямой замены других блоков (data или resource). Чтобы выяснить, предоставляют ли провайдеры такую возможность, следует обратиться к документации или схеме провайдера.

Жизненный цикл​

Жизненный цикл эфемерного ресурса отличается от жизненного цикла ресурсов других типов. Когда OpenTofu встречает такой блок, он выполняет следующую последовательность действий:

  • Проверяет конфигурацию с помощью указанного провайдера.
  • Открывает эфемерный ресурс, чтобы получить значение от провайдера.
  • Закрывает эфемерный ресурс, когда он больше не нужен для выполнения текущей фазы.

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

  • Эфемерные ресурсы
  • Эфемерные переменные
  • Эфемерные выходные значения
  • Локальные значения
  • Провайдеры
  • Провижионеры
  • Блоки ресурсов connection
  • Атрибуты ресурсов write-only

Любое использование значения ephemeral в контекстах, где это не разрешено, приведёт к ошибке.

Структура конфигурации​

Помимо атрибутов в схеме эфемерного ресурса, блок также поддерживает следующие метааргументы:

  • depends_on
  • count
  • for_each
  • provider
  • lifecycle

Настройка жизненного цикла​

Блок lifecycle внутри блока ephemeral позволяет настроить поведение OpenTofu, связанное с экземплярами ресурса на разных этапах его жизненного цикла.

Блок кода
ephemeral "example" "example" {
  # ...normal resource arguments...

  lifecycle {
    # ...lifecycle arguments...
  }
}

В блоке lifecycle эфемерного ресурса поддерживаются следующие аргументы и типы вложенных блоков:

  • enabled (bool) — определяет, будет ли OpenTofu использовать эфемерный ресурс. Если задано значение false, ресурс исключается из конфигурации, как если бы он не существовал. Если задано значение true (по умолчанию), ресурс работает в обычном режиме.

    В частности, для эфемерных ресурсов можно использовать логическое значение terraform.applying вместе с enabled, чтобы указать, что определённый эфемерный ресурс должен быть активен только на этапе применения. Это может быть полезно для значений, используемых только провижионерами управляемых ресурсов, поскольку провижионеры активны только на этапе применения.

    Дополнительную информацию см. в описании метааргумента enabled.

  • Блоки precondition и postcondition, описанные в разделе Пользовательские условия.

Отложенное открытие​

По замыслу эфемерные ресурсы нельзя открывать, если конфигурация известна не полностью. Если это происходит во время планирования, открытие эфемерного ресурса откладывается до этапа применения. На этапе применения, согласно графу зависимостей, эфемерный ресурс будет открыт только после удовлетворения всех его зависимостей.

Пример​

Подробный пример использования эфемерных ресурсов см. в этом примере.

Copyright (c) The OpenTofu Authors
Copyright (c) 2014 HashiCorp, Inc.
Mozilla Public License, version 2.0
https://opentofu.org/docs/v1.11/language/ephemerality/ephemeral-resources/

Spec-Zone.ru

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