Обновить переменную terraform из ресурса - PullRequest
0 голосов
/ 04 января 2019

Я хочу обновить переменную из ресурса на 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 Ответ

0 голосов
/ 04 января 2019

TL; DR * * 1001 Вы не можете обновить переменную. О HCL

Terraform использует язык HCL .

Этот язык является декларативным, а не процедурным или ООП. Это означает, что как только он определен, terraform не позволяет вам изменять его значение во время выполнения.

Из терраформы Документация :

Значением по умолчанию для входной переменной должно быть буквальное значение, не содержащее выражений интерполяции. Чтобы назначить имя выражению, чтобы его можно было повторно использовать в модуле, используйте вместо него локальные значения.

Кроме того, в вашем блоке resource вы можете использовать только аргументы , определенные этим ресурсом, и var.contador не является одним из них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...