更新terraform变量从资源

5

我想从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}"
1个回答

3

简而言之

你无法更新这个变量。

关于 HCL

Terraform 使用 HCL 语言。

这种语言是声明式的,而不是过程式的或面向对象的。这意味着一旦定义了,terraform 不允许你在运行时修改它的值。

来自 terraform 文档

输入变量的默认值必须是一个字面值,不包含插值表达式。如果要为表达式分配名称,以便在模块内重复使用,请改用本地值。

此外,在你的 resource 块中,你只能使用该资源定义的 参数,而 var.contador 不是其中之一。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接