Spec-Zone.ru › OpenTofu 1.10

Тип управляемого ресурса 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"
  }
}

Блок 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.10/language/resources/tf-data/

Spec-Zone.ru

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