Spec-Zone.ru › OpenTofu 1.11

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

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

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

Пример использования (данные для 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"
  }
}

Блок moved можно использовать для миграции с null_resource на ресурс terraform_data. Руководство по миграции

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

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

  • 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.11/language/resources/tf-data/

Spec-Zone.ru

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