#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.