Terraform:aws_elb.terraformelb ::无效或未知密钥:subnet_id

问题描述 投票:0回答:2

我正在尝试将ELB分配给新VPC内的公共子网:

resource "aws_subnet" "public" {
  vpc_id = "${aws_vpc.dev-vpc.id}"
  cidr_block = "${var.public_subnet}"
  availability_zone = "${var.aws_region}a"
  map_public_ip_on_launch = false

  tags {
    Name = "public"
    Environment = "${var.environment}"
  }
}

我收到以下错误:

    aws_elb.terraformelb: : invalid or unknown key: subnet_id

如果删除子网参数,ELB将分配给默认VPC。

这是我的terraform elb代码:

    resource "aws_elb" "terraformelb" {
        subnet_id = "${aws_subnet.public.id}"
        security_groups = ["${aws_security_group.terraformelb-sg.id}"]
        cross_zone_load_balancing = "true"
        idle_timeout = "60"
        connection_draining = "true"
        connection_draining_timeout = "300"
        tags = {
              Name = "${var.environment}-${var.environment_name}-elb"
              Env_Name = "${var.environment}-${var.environment_name}"
              Environment = "${var.environment}"
              Version = "${var.version}"
        }
        listener {
          lb_port           = 80
          lb_protocol       = "http"
          instance_port     = "${var.server_port}"
          instance_protocol = "http"
        }

        health_check {
          healthy_threshold = "10"
          unhealthy_threshold = "2"
          timeout = "2"
          interval = "5"
          target = "HTTP:${var.server_port}/"
        }
    }

请告诉我如何将ELB分配给子网。

谢谢,

amazon-web-services amazon-elb terraform
2个回答
1
投票

它的子网而不是subnet_id =“$ {aws_subnet.public.id}”


0
投票

子网是您想要的参数。

子网 - (对于VPC ELB是必需的)要附加到ELB的子网ID列表。

 subnets = ["${aws_subnet.public.id}"]

此外,VPC ELB不需要availability_zones,它与所提供的子网有关。

availability_zones - (对于EC2经典ELB是必需的)AZ用于提供流量。

https://www.terraform.io/docs/providers/aws/r/elb.html#subnets

如果你将cross_zone_load_balancing设置为“true”,那么在不同的AZ中提供几个更多的公共子网可能是个好主意。

在要启动实例的每个可用区中创建子网。根据您的应用程序,您可以在公共子网,私有子网或公共子网和私有子网的组合中启动实例。公有子网具有到Internet网关的路由。请注意,默认情况下,默认VPC每个可用区域都有一个公有子网。

https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-backend-instances.html

© www.soinside.com 2019 - 2024. All rights reserved.