Модуль балансировки нагрузки AWS Terraform (https://github.com/terraform-aws-modules/terraform-aws-alb ): target_group_index = 0, что это такое?

#amazon-web-services #terraform #aws-load-balancer #aws-application-load-balancer

#amazon-веб-сервисы #terraform #aws-балансировщик нагрузки #aws-application-балансировщик нагрузки

Вопрос:

Я пытаюсь использовать модуль терраформирования модуля, приложения AWS и сетевого балансировщика нагрузки (ALB amp; NLB), https://github.com/terraform-aws-modules/terraform-aws-alb . Существует пример использования балансировщика нагрузки приложения, см. Ниже:

 module "alb" {
  source  = "terraform-aws-modules/alb/aws"
  version = "~> 5.0"
  
  name = "my-alb"

  load_balancer_type = "application"

  vpc_id             = "vpc-abcde012"
  subnets            = ["subnet-abcde012", "subnet-bcde012a"]
  security_groups    = ["sg-edcd9784", "sg-edcd9785"]
  
  access_logs = {
    bucket = "my-alb-logs"
  }

  target_groups = [
    {
      name_prefix      = "pref-"
      backend_protocol = "HTTP"
      backend_port     = 80
      target_type      = "instance"
    }
  ]

  https_listeners = [
    {
      port               = 443
      protocol           = "HTTPS"
      certificate_arn    = "arn:aws:iam::123456789012:server-certificate/test_cert-123456789012"
      target_group_index = 0
    }
  ]

  http_tcp_listeners = [
    {
      port               = 80
      protocol           = "HTTP"
      target_group_index = 0
    }
  ]

  tags = {
    Environment = "Test"
  }
}
 

Я понимаю, что target_group_index — это массив. Но почему target_group_index = 0, а не target_group_index = 1 или target_group_index = 2? Что такое индекс 0?

Ответ №1:

В примере, который вы опубликовали, есть только одна целевая группа (TG):

   target_groups = [
    {
      name_prefix      = "pref-"
      backend_protocol = "HTTP"
      backend_port     = 80
      target_type      = "instance"
    }
  ]
 

Таким образом, слушатели используют target_group_index = 0 , чтобы указать, что они применяются к этому конкретному TG. Если у вас больше TG, вы бы target_group_index = 1, 2, 3 ... указали, какой слушатель применяется к каждому TG.