Terraform – 如何引用内插值中的variables

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

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

我使用该variables来定义AWS VPC。

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

我的问题是,当我想使用先前定义的AWS VPC的ID(名为${var.cluster}_vpc的id)关联AWS DHCP Option ${var.cluster}_vpc 。 我想要做的逻辑视图(这将不起作用,因为Terraform不支持​​嵌套插值)是:

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

some_cluster实际上由${var.cluster}定义时,如何引用${var.cluster}

好。 我认为,如果我将VPC本身添加为模块,则可以传入${cluster}并返回${vpc_id} ,供需要该值的各种组件使用。

编辑:设置vpc.tf作为模块是正确的方法。

你不能这样做terraform

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

是的,你想创build一个模块,并将值传递给模块来做你想要做的事情