Тип управляемого ресурса 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.12/language/resources/tf-data/