2017-12-26 2 views
0

Ich versuche, eine ELB an ein öffentliches Subnetz zuzuweisen, die in einem neuen VPC ist:Terraforming: aws_elb.terraformelb: ungültig oder unbekannten Schlüssel: subnet_id

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}" 
    } 
} 

und ich erhalte den folgenden Fehler:

aws_elb.terraformelb: : invalid or unknown key: subnet_id 

Wenn ich den Subnetzparameter entferne, wird der ELB einer Standard-VPC zugewiesen.

Hier ist mein Terraforming elb Code:

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}/" 
     } 
    } 

Bitte lassen Sie mich wissen, wie ein ELB zu einem Subnetz zuzuweisen.

Danke,

Antwort

1

es Subnetze statt subnet_id = "$ {aws_subnet.public.id}"

0

Subnetze ist der Parameter, den Sie möchten.

subnets - (Required for a VPC ELB) A list of subnet IDs to attach to the ELB.

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

Auch availability_zones ist nicht für VPC ELB ist erforderlich, es wird angedeutet mit dem Subnetz zur Verfügung gestellt.

availability_zones - (Required for an EC2-classic ELB) The AZ's to serve traffic in.

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

Es kann eine gute Idee sein, auch mehrere öffentliche Subnetze in verschiedenen AZ Bereitstellung zu, wenn Sie cross_zone_load_balancing auf "true"

Create a subnet in each Availability Zone where you want to launch instances. Depending on your application, you can launch your instances in public subnets, private subnets, or a combination of public and private subnets. A public subnet has a route to an Internet gateway. Note that default VPCs have one public subnet per Availability Zone by default.

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

setzen
Verwandte Themen