将多个安全组映射到 ELB
Mapping multiple Security Groups into ELB
我正在尝试将包含 Cloudfront CIDR 的多个安全组附加到我的 AWS ALB。
locals {
chunks = chunklist(data.aws_ip_ranges.cloudfront.cidr_blocks, 60)
chunks_map = { for i in range(length(local.chunks)): i => local.chunks[i] }
}
resource "aws_security_group" "sg" {
for_each = local.chunks_map
name = "{each.key}"
egress {
....
}
}
resource "aws_elb" "load" {
name = "test"
security_groups = aws_security_group.sg.id // This is wrong
我收到的错误是
Because aws_security_group.sg has for_each se, its attributes must be access on specific instances
再次使用 for_each 没有意义,因为我不想创建多个资源,我只想确保创建的所有安全组都附加到负载均衡器。有什么想法吗?
由于您已经使用了 for_each
,因此 aws_security_group.sg
的实例将不止一个。要从所有这些中获取 id
,您可以使用 splat 运算符:
security_groups = values(aws_security_group.sg)[*].id
我正在尝试将包含 Cloudfront CIDR 的多个安全组附加到我的 AWS ALB。
locals {
chunks = chunklist(data.aws_ip_ranges.cloudfront.cidr_blocks, 60)
chunks_map = { for i in range(length(local.chunks)): i => local.chunks[i] }
}
resource "aws_security_group" "sg" {
for_each = local.chunks_map
name = "{each.key}"
egress {
....
}
}
resource "aws_elb" "load" {
name = "test"
security_groups = aws_security_group.sg.id // This is wrong
我收到的错误是
Because aws_security_group.sg has for_each se, its attributes must be access on specific instances
再次使用 for_each 没有意义,因为我不想创建多个资源,我只想确保创建的所有安全组都附加到负载均衡器。有什么想法吗?
由于您已经使用了 for_each
,因此 aws_security_group.sg
的实例将不止一个。要从所有这些中获取 id
,您可以使用 splat 运算符:
security_groups = values(aws_security_group.sg)[*].id