Terraform如何根据工作空间在路由表中获取动态路由
UAT
resource "aws_vpn_gateway" "micorsoft_vpn_gw" {
vpc_id = aws_vpc.default.id
tags = {
Name = "micorsoft"
}
}
resource "aws_route_table" "private" {
vpc_id = aws_vpc.default.id
route {
cidr_block = "0.0.0.0/0"
nat_gateway_id = aws_nat_gateway.default.id
}
route {
cidr_block = "0.0.0.0/0"
gateway_id = aws_vpn_gateway.micorsoft_vpn_gw.id
}
tags = merge(map("Name", "${var.namespace}-${var.environment}"), var.tags)
}
DEV
resource "aws_route_table" "private" {
vpc_id = aws_vpc.default.id
route {
cidr_block = "0.0.0.0/0"
nat_gateway_id = aws_nat_gateway.default.id
}
tags = merge(map("Name", "${var.namespace}-${var.environment}"), var.tags)
}
如何实现这一点是基于工作空间/环境的动态方式
您可以使用动态块 https://www.terraform.io/docs/configuration/expressions.html#dynamic-blocks为了那个原因。
resource "aws_route_table" "private" {
vpc_id = aws_vpc.default.id
route {
cidr_block = "0.0.0.0/0"
nat_gateway_id = aws_nat_gateway.default.id
}
dynamic "route" {
for_each = var.env == "DEV" ? toset([]) : toset([1])
content {
cidr_block = "0.0.0.0/0"
gateway_id = aws_vpn_gateway.micorsoft_vpn_gw.id
}
}
tags = merge(map("Name", "${var.namespace}-${var.environment}"), var.tags)
}
基本上,当var.env
is DEV
,没有第二个route
将被创建。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)