如何解决AWS 模块中的 Terraform 条件
今天早些时候,我正在查看 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,)
}
解决方法
它以以下一般形式使用 ternary operation:
CONDITION ? TRUEVAL : FALSEVAL
在模块中,
CONDITION is var.create_vpc && var.create_igw && length(var.public_subnets) > 0
TRUEVAL is 1
FALSEVAL is 0
这翻译如下:如果create_vpc
和create_igw
都是true
并且public_subnets
已经被定义,那么{{ 1}} 将是 count
(1
) 并且正好创建一个 TRUEVAL
。
相反,如果 aws_internet_gateway.this
不满足,CONDITION
将是 count
(0
) 并且不会创建 FALSEVAL
。
一般来说,conditionally create terraform 中的资源是常见模式:
aws_internet_gateway.this
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。