Spec-Zone.ru › OpenTofu 1.12

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

Примечание

Эфемерные ресурсы можно использовать только в 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.12/language/ephemerality/ephemeral-resources/

Spec-Zone.ru

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