Назад | Перейти на главную страницу

Terraform - как обращаться к переменным внутри интерполированного значения

В файле terraform .tf у меня есть переменная, cluster определяется так:

variable "cluster" {
    type = "string"
    default = "test_cluster"
}

Я использую переменную для определения AWS VPC.

resource "aws_vpc" "${var.cluster}_vpc" {
    # ... configuration ...
}

Моя проблема заключается в том, что я хочу связать набор параметров DHCP AWS, используя идентификатор ранее определенного AWS VPC - тот, который назван ${var.cluster}_vpc. Логическое представление о том, что я пытаюсь сделать (что не сработает, потому что Terraform не поддерживает вложенную интерполяцию):

resource "aws_dhcp_options_association" "${var.cluster}_dhcp_assoc" {
    "vpc_id" = "${{var.cluster}_vpc.id}"
}

Как я могу сослаться на ${some_cluster_vpc.id} когда some_cluster фактически определяется ${var.cluster}?

ХОРОШО. Я думаю, что если я добавлю сам VPC в качестве модуля, я смогу передать ${cluster} и вернуть ${vpc_id} для использования различными компонентами, которым требуется это значение.

РЕДАКТИРОВАТЬ: Настройка vpc.tf в качестве модуля была правильным подходом.

Вы не можете сделать это в терраформе

resource "aws_vpc" "${var.cluster}_vpc" {

Да, вы хотите создать модуль и передать значения в модуль, чтобы легко делать то, что вы хотите