在 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" {
是的,您想创建一个模块并将值传递给模块,以便轻松地完成您想要做的事情