Spec-Zone.ru › OpenTofu 1.9

Тип управляемого ресурса terraform_data

terraform_data реализует стандартный жизненный цикл ресурса, но не выполняет напрямую никаких других действий. Вы можете использовать ресурс terraform_data без необходимости в провайдере или его настройки. Он всегда доступен через встроенный провайдер с адресом источника terraform.io/builtin/terraform.

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

Пример использования (данные для replace_triggered_by)​

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

Простые значения данных, такие как локальные значения и входные переменные, не имеют побочных эффектов, которые можно было бы учесть при планировании, и поэтому недопустимы в replace_triggered_by. Можно использовать поведение terraform_data, при котором действие планируется каждый раз, когда изменяется input, чтобы косвенно использовать простое значение для запуска замены.

Блок кода
variable "revision" {
  default = 1
}

resource "terraform_data" "replacement" {
  input = var.revision
}

# This resource has no convenient attribute which forces replacement,
# but can now be replaced by any change to the revision variable value.
resource "example_database" "test" {
  lifecycle {
    replace_triggered_by = [terraform_data.replacement]
  }
}

Пример использования (замена null_resource)​

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

resource "aws_instance" "database" {
  # ...
}

# A use-case for terraform_data is as a do-nothing container
# for arbitrary actions taken by a provisioner.
resource "terraform_data" "bootstrap" {
  triggers_replace = [
    aws_instance.web.id,
    aws_instance.database.id
  ]

  provisioner "local-exec" {
    command = "bootstrap-hosts.sh"
  }
}

Справочник по аргументам​

Поддерживаются следующие аргументы:

  • input — (Необязательно) Значение, которое будет сохранено в состоянии экземпляра и отражено в атрибуте output после применения.

  • triggers_replace — (Необязательно) Значение, сохраняемое в состоянии экземпляра; при его изменении будет принудительно выполнена замена.

Справочник по атрибутам​

Кроме того, экспортируются следующие атрибуты:

  • id — Строковое значение, уникальное для экземпляра ресурса.

  • output — Вычисленное значение, полученное из аргумента input. При планировании, когда output неизвестно, оно всё равно будет иметь тот же тип, что и input.

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

Spec-Zone.ru

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