AWS模块中的地形条件



今天早些时候,我看到https://github.com/terraform-aws-modules/terraform-aws-vpc/blob/v2.77.0/main.tf深入了解AWS的VPC模块在幕后是如何工作的。

我正在努力解决的一件事是计数条件,比如aws_internet_gateway资源中的计数条件。

有人能解释和翻译这个资源中定义的计数实际在做什么吗?现在我很困惑。

resource "aws_internet_gateway" "this" {
count = var.create_vpc && var.create_igw && length(var.public_subnets) > 0 ? 1 : 0
vpc_id = local.vpc_id
tags = merge(
{
"Name" = format("%s", var.name)
},
var.tags,
var.igw_tags,
)
}

它使用三元运算的一般形式为:

CONDITION ? TRUEVAL : FALSEVAL

在模块中,

CONDITION is var.create_vpc && var.create_igw && length(var.public_subnets) > 0
TRUEVAL is 1
FALSEVAL is 0

转换为以下内容:如果create_vpccreate_igw都是true,并且已经定义了public_subnets,则count将是1(TRUEVAL(,并且将恰好创建一个aws_internet_gateway.this

相反,如果不满足CONDITION,则count将是0(FALSEVAL(,并且不会创建aws_internet_gateway.this

一般来说,有条件地在地形中创建资源是一种常见的模式:

resource "type" "name" {
count = CONDITION : 1 ? 0
}

相关内容

  • 没有找到相关文章

最新更新