Terraform terraform_data
验证:未记录
- 适用版本
- 未记录
- 验证范围
- 尚未登记验证记录。
用途#
Terraform 1.4+ 内置资源,用于保存输入、承载 provisioner,或把普通值的变化接入资源生命周期。无需配置 required_providers。
| 参数 / 属性 | 行为 |
|---|---|
input |
保存输入,变化时更新资源 |
output |
apply 后对应的输入值 |
triggers_replace |
值变化时替换资源 |
id |
资源实例的唯一标识 |
示例#
运行环境需要 Bash。修改说明只更新数据;修改版本则替换资源并执行命令。
terraform {
required_version = ">= 1.4.0"
}
variable "revision" {
type = string
default = "v1"
}
variable "release_note" {
type = string
default = "Initial release"
}
resource "terraform_data" "release" {
input = {
note = var.release_note
}
triggers_replace = [var.revision]
provisioner "local-exec" {
interpreter = ["bash", "-c"]
command = "printf 'Release: %s\n' \"$REVISION\""
environment = {
REVISION = var.revision
}
}
}
output "release_note" {
value = terraform_data.release.output.note
}保存为 main.tf 后执行 terraform init、terraform plan,审查后 terraform apply。
注意事项#
- 仅
input变化不会重新执行创建阶段的 provisioner;需要重跑时使用triggers_replace。 depends_on只建立依赖,不代表上游变化时自动替换当前资源。replace_triggered_by需要资源引用;普通变量可先放入一个terraform_data.input,再由目标资源引用该资源。- 该资源不管理脚本副作用,也不提供自动回滚;不要用它代替已有的 provider resource。