Ephemeral values и ресурсы

Тема дорожной карты · Terraform

Ephemeral values (эфемерные значения) — механизм Terraform, появившийся в версии 1.10, для работы с чувствительными или временными данными, которые не должны попадать ни в terraform.tfstate, ни в plan-файл. В отличие от sensitive = true (значение всё равно хранится в state, просто скрыто в выводе CLI), эфемерные значения существуют только в памяти во время текущей операции plan/apply и уничтожаются по её завершении. Основные конструкции: блок ephemeral (эфемерный ресурс — например, генерация пароля или чтение секрета из Vault), а также аргумент ephemeral = true у variable и output. Обращение к результату — через ephemeral.<type>.<name>.<attr>. OpenTofu поддерживает эфемерные ресурсы с версии 1.9+.

Как это работает

Эфемерный ресурс объявляется блоком ephemeral, а не resource:

ephemeral "random_password" "db" {
  length = 20
}

У эфемерного ресурса особый жизненный цикл: Terraform «открывает» его (open), при долгих операциях «продлевает» (renew) и «закрывает» (close) в конце — вместо create/update/delete. Значение можно передать только туда, где оно тоже не сохраняется: в write-only аргументы ресурсов (суффикс _wo), в конфигурацию провайдера или в другой эфемерный ресурс. variable "token" { ephemeral = true } помечает входную переменную эфемерной; output c ephemeral = true разрешён только внутри модулей, но не в корне.

Когда применять

Если значение нужно сохранить (ID ресурса, endpoint) — эфемерность не подходит: это для «пронести и забыть».

Типичные ошибки

Связанные понятия

Полезные ресурсы

Проверить знания (2)

Загрузка вопросов…