【问题标题】:Terraform: aws_elb.terraformelb: : invalid or unknown key: subnet_idTerraform:aws_elb.terraformelb::无效或未知键:subnet_id
【发布时间】:2023-03-18 21:46:01
【问题描述】:

我正在尝试将 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


    【解决方案1】:

    它是 子网 而不是 subnet_id = "${aws_subnet.public.id}"

    【讨论】:

      【解决方案2】:

      子网是你想要的参数。

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

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

      VPC ELB 也不需要availability_zones,它隐含在提供的子网中。

      availability_zones -(EC2 经典 ELB 所必需的)可用区的 提供流量。

      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

      【讨论】:

        猜你喜欢
        • 2016-07-18
        • 2018-09-18
        • 2017-01-15
        • 2019-03-03
        • 1970-01-01
        • 2021-01-13
        • 1970-01-01
        • 2023-01-31
        • 1970-01-01
        相关资源
        最近更新 更多