我想从terraform上的资源更新变量。
有可能吗?我对这项技术有些陌生。
variable "contador" {
default = 0
}
resource "azurerm_managed_disk" "test-disks-test3" {
count = "${length(var.disks_size) * var.vm_number}"
name = "SRV${var.service_base_name}${var.service_environment}01-DATADISK-0${count.index}"
location = "westeurope"
resource_group_name = "${azurerm_resource_group.test-rg-test3.name}"
storage_account_type = "${var.disk_tier}_${var.disk_replication}"
create_option = "Empty"
disk_size_gb = "${element(var.disks_size, count.index)}"
var.contador = "${count.index % length(var.disks_size) == (length(var.disks_size) - 1) ? (var.contador + 1) : var.contador}"
tags{
environment = "TestWork"
}
}
有问题的行是:
var.contador = "${count.index % length(var.disks_size) == (length(var.disks_size) - 1) ? (var.contador + 1) : var.contador}"
答案 0 :(得分:0)
您无法更新变量。
Terraform正在使用HCL语言。
此语言是说明性的,不是过程性或OOP的。 这意味着一旦定义了它,terraform将不允许您在运行时修改其值。
从地形documentation:
输入变量的默认值必须是文字值,不包含插值表达式。要为表达式分配名称,以便可以在模块中重复使用,请改用“本地值”。
此外,在您的resource
块中,您只能使用该资源定义的arguments,而var.contador
不是其中之一。