Terraform——如何引用插值内的变量

Terraform——如何引用插值内的变量

在 terraform .tf 文件中,我有一个变量,cluster定义如下:

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

我使用变量来定义 AWS VPC。

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

我的问题是当我想使用先前定义的 AWS VPC(名为 )的 ID 关联 AWS DHCP 选项集时${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 设置为模块是正确的方法。

答案1

你不能在 Terraform 中做到这一点

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

是的,您想创建一个模块并将值传递给模块,以便轻松地完成您想要做的事情

相关内容